亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在MYSQL中怎么分庫分表

發布時間:2022-01-05 17:12:29 來源:億速云 閱讀:190 作者:小新 欄目:大數據

小編給大家分享一下在MYSQL中怎么分庫分表,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

正文:

——————————————————————————————

在MYSQL的使用中,經常會有人問怎么分庫分表,經常會聽到兩種答案。

1 分庫分表,我們使用業務邏輯 + 業務程序的方式來進行,并期根據實際的環境將系統中的一些表分割到不同的MYSQL 服務器上存儲,達到以下兩個關鍵問題的解決。

       1 受制于MYSQL本身的單表的存儲能力,這樣處理將擴展MYSQL的單表的存儲能力。

       2 受制于MYSQL 單機(包括基于 MGR集群 , MHA高可用)本身數據吞吐能力,將數據打散后,提高了數據庫的存儲速度,和數據的提取速度。

這恐怕是分庫分表中最重要的需求。

2 分庫分表,使用中間件的方式,進行分表的操作,這是另一種分表的方式,與上邊的方式相比,這樣的方式更加的通用,通過中間件的方式將數據流自動分割到不同的MYSQL 數據庫服務器上,以達到和上邊使用特定邏輯達到同樣的效果,滿足數據的存儲擴展和更大吞吐量的需求。

那1 和 2 兩種分表的方案,之間的區別,個人理解 1 方案更貼近業務,并且如果是自己的公司來研發方案,則出錯,排錯,都比較方便。但如果自己定義的方案出現問題,并且已經上了一段生產,如果反悔修改上成本就比較高了。

方案2 采用中間件的方式來說,是大部分,或者說需要快速上線,業務方面方向比較靈活,而且需要分表的表,有點多的情況下,采用的一種方式。

從成本上看1 方案要投入的人力,物力會比較多,方案2 投入的人力,物力比較少,由于中間件是根據很多業務的需求而來所產生的,所以通用性比較強,適應力也比較高。方案1 那就看各家自己的開發水平和經驗了。

但為什么方案2在成本較低的情況下 ,有些公司沒有用也總結了以下幾點

1  中間件的使用,牽扯整體關鍵業務(分表的表一般都是業務中的主力)自己研發分庫分表的方案更有底。

2  中間件的某些設計上的問題,對復雜的查詢語句執行,數據的返回,事務下發后,失敗的處理等等,都要復雜與單庫系統,所以怕后期出現問題,無法解決,所以不使用。

這里從邏輯的角度來看中間件

1  中間件的自帶的主鍵生成的邏輯,是否能滿足企業業務中設想的邏輯,滿足開發的對于主鍵設計的需求。

2  中間件對于支持的MYSQL的語法的標準,以及是否可以承受一些復雜語句的查詢,降低開發人員在設計系統時的難度。

3  中間件在不使用后,數據的遷移,維護,改變分庫分表的更改的成本的問題。

基于上面的幾點考慮,標準化,穩定性,有相關支持等等是應該被考慮在使用中間件的基礎上的一個考量。

在細節方面,使用中間件考慮的范圍會更多一些

比如對于學習成本的需求,中間件的加入不應該提高使用數據庫的成本,無論是從人員還是技術方面,與原有的數據庫的使用方式越貼近越好。

支持原生的數據庫協議,這也是降低學習成本,提高使用的方便感的一個應該由的標準。

當然對中間件的要求中看似沒有特點,但很難做到的部分,就是事務的回滾,在一個MYSQL 數據庫中進行事務的回滾,是在正常不過的事情, 而將一個事務下發到多臺MYSQL 并且在進行事務回滾,這就不是一件簡單的事情。

1 對于多個MYSQL 節點中,某個節點的失敗如何處理

2 對于執行計劃如何打散到多個節點執行,并且保持執行效率

3 整體事務在操作失敗后,如何進行事務的回滾

4 對復雜SQL 的拆分,將復雜的查詢拆分為基本的關系代數查詢樹,在下發到各個節點,然后返回數據在進行合并等等。

5 對于復雜的SQL的執行后的數據返回的正確性。

基于中間件的復雜,以及要求,其實我們可以使用的中間件并沒有太多的選擇大部分都是在使用mycat,更加清晰的了解和理解MYSQL中間件的定義,則是如何搞好分庫分表的第一步,實際上也是有其他的中間件可以選擇。

看完了這篇文章,相信你對“在MYSQL中怎么分庫分表”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵川县| 离岛区| 志丹县| 平和县| 丁青县| 大关县| 镇赉县| 娄底市| 昌黎县| 洛扎县| 威信县| 翼城县| 确山县| 贡觉县| 观塘区| 繁峙县| 静安区| 浏阳市| 永仁县| 浮山县| 新绛县| 兴山县| 龙门县| 惠州市| 锦屏县| 天峨县| 双桥区| 高雄县| 永济市| 长武县| 巫溪县| 洪雅县| 饶平县| 牙克石市| 东乌珠穆沁旗| 新龙县| 山东省| 松阳县| 黑水县| 阿拉尔市| 宁津县|