[發明專利]MYSQL數據庫水平切分方法、MYSQL連接建立方法及裝置有效
| 申請號: | 201310266876.6 | 申請日: | 2013-06-29 |
| 公開(公告)號: | CN103324732A | 公開(公告)日: | 2013-09-25 |
| 發明(設計)人: | 梁捷;王堯佳 | 申請(專利權)人: | 優視科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100080 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | mysql 數據庫 水平 切分 方法 連接 建立 裝置 | ||
技術領域
本發明涉及MYSQL數據存儲領域,更為具體地,涉及MYSQL數據庫水平切換方法、MYSQL連接建立方法及裝置。
?
背景技術
隨著MYSQL存儲的數據越來越大,導致一個MYSQL數據庫無法存儲所有數據,因而數據必然會被存儲在若干個MYSQL數據庫中,由此需要進行數據庫切分(sharding)。
數據庫切分方法主要包含兩種:垂直切分和水平切分。直切分是指將數據庫中的不同列切分出來,然后分別存儲到不同的MYSQL數據庫中。水平切分是指將數據庫中的不同行切分出來,然后分別存儲到不同的數據庫中。由于垂直切分不具有良好的擴展性,所以在進行MYSQL數據庫切分時,通常采用水平切分。
目前比較有代表性的開源水平切分MYSQL方案是Amoeba和hiveDB。在這兩種方案中都自建MYSQL代理。所有對MYSQL的訪問都需要通過自建的MYSQL代理進行。它們的優點是切分對于應用程序是透明的,但是缺點是由于建立了MYSQL代理,對于SQL語句的支持有限。
為了支持所有MYSQL,在進行水平切分時,需要在應用程序內部寫死切分規則。這樣,由于客戶端程序直連MYSQL,所以支持所有MYSQL的SQL語句。但是,在這種情況下,由于客戶端切分規則被寫死,在對MYSQL數據庫進行再切分時,需要更改所有的客戶端切分規則,從而使得幾乎無法對MYSQL數據庫進行再切分。
此外,無論采用帶分派規則的MYSQL代理方案還是客戶端分派方案,都會導致數據遷移困難。并且,在遷移過程中,需要停止整個數據庫集群的服務,對業務影響較大。
?
發明內容
鑒于上述,本發明提出了一種MYSQL數據庫水平切分方法及裝置,該方法及裝置能夠實現對MYSQL數據庫的靈活切分以及遷移,具有良好的擴展性以及防災性。
本發明還提出了一種MYSQL連接建立方法及裝置,該方法及裝置能夠利用下載到本地的數據路由表和數據庫連接信息表,建立MYSQL連接。
根據本發明的一個方面,提供了一種MYSQL數據庫水平切分方法,包括:基于預定的數據ID范圍分配策略,為數據庫集群中的數據庫分配數據ID范圍[Min(n),Max(n)],其中,N是數據庫集群中的數據庫的總數,Min(n)是第n個數據庫的數據ID范圍的最小邊界值,以及Max(n)是第n個數據庫的數據ID范圍的最大邊界值;以及根據所述MYSQL數據的數據ID,將所述MYSQL數據分別存儲到所具有的數據ID范圍包含該數據ID的數據庫中,其中,所述預定的數據ID范圍分配策略包括使得Min(1)小于等于要存儲的MYSQL數據中的最小數據ID,MAX(N)大于等于要存儲的MYSQL數據中的最大數據ID,Min(n+1)=Max(n)+1,Max(n+1)=Min(n+2)-1。
在上述方面的一個或多個示例中,所述MYSQL數據庫切分方法還可以包括:基于所述數據庫的標識符以及為各個數據庫分配的數據ID范圍,生成數據路由表。
在上述方面的一個或多個示例中,所述MYSQL數據庫切分方法還可以包括:將數據庫連接信息表以及數據路由表存儲在路由服務器中,所述數據庫連接信息表包括所有數據庫的連接信息。
在上述方面的一個或多個示例中,所述MYSQL數據庫切分方法還可以包括:在檢測到所述數據庫集群中增加新數據庫時,從已經存儲有MYSQL數據的數據庫中選擇所存儲的數據量最大的數據庫;基于原先分配給所選擇的數據庫的數據ID范圍的最大和最小邊界值,為所選擇的數據庫以及所述新數據庫重新分配數據ID范圍;以及將所選擇的數據庫中的與分配給所述新數據庫的數據ID范圍對應的部分數據遷移到新數據庫。
在上述方面的一個或多個示例中,所述MYSQL數據庫切分方法還可以包括:在檢測到所述數據庫集群中增加新數據庫時,從已經存儲有MYSQL數據的數據庫中選擇所存儲的數據量最大的數據庫;基于原先分配給所選擇的數據庫的數據ID范圍的最大和最小邊界值,為所選擇的數據庫以及所述新數據庫重新分配數據ID范圍;利用分配給所選擇的數據庫以及所述新數據庫的數據ID范圍以及對應數據庫的標識符,更新所述數據路由表;將所選擇的數據庫的路由置為無效;將所選擇的數據庫中的與分配給所述新數據庫的數據ID范圍對應的部分數據遷移到新數據庫;以及將更新后的數據路由表中的所選擇的數據庫和新數據庫的路由置為有效。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于優視科技有限公司,未經優視科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310266876.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:真空吸水箱的真空度顯示裝置
- 下一篇:水處理設備壓力表的新型安裝結構





