黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 MySQL的分庫分表框架

MySQL的分庫分表框架

更新時間:2022-07-13 10:35:46 來源:動力節點 瀏覽2067次

MySQL教程中會學到分庫分表,下面就由動力節點小編來給大家進行詳細介紹。

MySQL 可擴展設計

數據庫擴展解決了什么問題?

做熱備份,保證多活,方便故障切換

負載均衡、讀寫分離

1.主從架構:Master-Slaves

在實際應用場景中,MySQL 復制 90% 以上都是一個 Master 復制到一個或者多個 Slave 的架構模式。

缺點:

master 不能停機,停機就不能接收寫請求。

slave 過多會出現延遲。

由于 master 需要進行常規維護停機了,那必須要把一個slave提成master,會存在某一個 slave 提成 master 后,存在當前 master 和掛掉之前的 master 數據不一致的情況,并且之前 master 并沒有保存當前 master 節點的 binlog 文件和 pos 位置。

2.雙主架構:Master-Master

配合第三方的工具,比如 keepalived 輕松做到 IP 的漂移,當一個 master 掛掉后,請求轉移到另一個 master。

3.級聯復制架構:Master-Slaves-Slaves…

如果讀壓力加大,就需要更多的 slave 來解決,但是如果 slave 的復制全部從 master 復制,勢必會加大 master 的復制 IO 的壓力,所以就出現了級聯復制,減輕 master 壓力。缺點是 slave 延遲更加大了。

4.雙主與級聯復制架構:Master-Master-Slaves

這樣解決了單點 master 的問題,解決了 slave 級聯延遲的問題。

5.復制機制

MySQL 復制支持異步復制、半同步復制:異步復制時不需要等待 slave 返回。

半同步復制失敗后會切換為異步。

6.主從復制配置

master配置
server-id=135
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=1
lower_case_table_names=1
#binlog-do-db=mstest      //要同步的mstest數據庫,要同步多個數據庫
#binlog-ignore-db=mysql  //要忽略的數據庫
slave配置
server-id=133
log-bin=mysql-bin
auto-increment-increment=2
auto-increment-offset=2
lower_case_table_names=1
#replicate-do-db  = wang           #需要同步的數據庫
#binlog-ignore-db  = mysql
#binlog-ignore-db  = information_schema

在 master mysql 添加權限

GRANT REPLICATION SLAVE,FILE,REPLICATION CLIENT ON *.* TO 'repluser'@'%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

在 master 上查看 master 的二進制日志

show  master status;

在 slave 中設置 master 的信息

change master to master_host='192.168.88.135',master_port=3307,master_user='repluser',master_password='Jack@123456',master_log_file='mysql-bin.000001',master_log_pos=154;

開啟 slave,啟動 SQL 和 IO 線程

start slave;

查看 slave 的狀態

show slave status\G

查看二進制日志是否開啟

show global variables like "%log%";

查看進程信息

SHOW PROCESSLIST;

允許root遠程連接

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

7.半同步復制配置

加載 lib,所有主從節點都要配置

主庫:install plugin rpl_semi_sync_master soname ‘semisync_master.so’;

從庫:install plugin rpl_semi_sync_slave soname ‘semisync_slave.so’;

查看,確保所有節點都成功加載。show plugins;

啟用半同步

先啟用從庫上的參數,最后啟用主庫的參數。

從庫:set global rpl_semi_sync_slave_enabled = {0|1}; # 1:啟用,0:禁止

主庫:

set global rpl_semi_sync_master_enabled = {0|1}; # 1:啟用,0:禁止

set global rpl_semi_sync_master_timeout = 10000; # 單位為ms

MySQL 切分

數據切分指通過某種特定的條件,將我們存放在同一個數據庫中的數據分散存放到多個數據庫(主機)上面,以達到分散單臺設備負載的效果。

數據切分分為兩種:

垂直切分

水平切分

1.數據庫垂直切分

垂直切分的優點:

數據庫的拆分簡單明了,拆分規則明確;

應用程序模塊清晰明確,整合容易;

數據維護方便易行,容易定位;

垂直切分缺點:

跨庫 join

代碼要重構,會有分布式事務問題

跨庫分頁問題。

部分表關聯無法在數據庫級別完成,需要在程序中完成,存在跨庫 join 的問題,對于這類的表,就需要去做平衡,是數據庫讓步業務,共用一個數據源,還是分成多個庫,業務之間通過接口來做調用;在系統初期,數據量比較少,或者資源有限的情況下,會選擇共用數據源,但是當數據發展到了一定的規模,負載很大的情況,就需要必須去做分割。

對于訪問極其頻繁且數據量超大的表仍然存在性能瓶頸,不一定能滿足要求。

事務處理相對更為復雜。

切分達到一定程度之后,擴展性會遇到限制。

過多切分可能會帶來系統過渡復雜而難以維護。

2.數據庫水平拆分

水平拆分不是將表做分類,而是按照某個字段的某種規則來分散到多個庫之中,每個表中包含一部分數據。簡單來說,我們可以將數據的水平切分理解為是按照數據行的切分,就是將表中的某些行切分到一個數據庫,而另外的某些行又切分到其他的數據庫中。

水平切分的優點:

表關聯基本能夠在數據庫端全部完成;

不會存在某些超大型數據量和高負載的表遇到瓶頸的問題;

應用程序端整體架構改動相對較少;

事務處理相對簡單;

只要切分規則能夠定義好,基本上較難遇到擴展性限制;

水平切分的缺點:

切分規則相對更為復雜,很難抽象出一個能夠滿足整個數據庫的切分規則;

后期數據的維護難度有所增加,人為手工定位數據更困難;

應用系統各模塊耦合度較高,可能會對后面數據的遷移拆分造成一定的困難。

跨節點合并排序分頁問題

多數據源管理問題

以上就是關于“MySQL的分庫分表框架”的介紹,大家如果想了解更多相關知識,可以關注一下動力節點的MySQL視頻教程,里面的課程內容細致全面,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩欧美中文字幕在线视频 | 999久久久免费精品国产牛牛 | 一级bbbb视频bbbb | 在线亚州 | free×xx性欧美漫画 | 国产精品久久久久乳精品爆 | 亚洲成人91 | 亚洲妇人成熟性成熟网站 | 多人伦交性欧美在线观看 | 亚洲人成网址在线播放a | 中国特级毛片 | www伊人| 欧美日韩一本二本 | 午夜刺激爽爽视频免费观看 | 国产在线视频一区二区三区 | 亚洲欧美日韩中文综合在线不卡 | 午夜剧场官网 | 亚洲伦理在线 | 白丝丝袜高跟国产在线视频 | 亚洲欧洲日产国码 最新 | 精品一区二区三区在线视频 | 澳门一级毛片手机在线看 | 亚洲免费三级 | 欧美国产日韩在线播放 | 免费人成在线观看视频播放 | 欧美成在线视频 | 国产成在线观看免费视频成本人 | 99精品视频看国产啪视频 | a级精品国产片在线观看 | 国产网站91 | 国产精品亚洲综合久久 | 日韩精品网址 | 456极品嫩模在线视频 | 欧美顶级黄色大片免费 | 亚洲图片在线欧美专区图片 | 日本人的色道免费网站 | 大片毛片女女女女女女女 | 亚洲高清免费观看 | 精品国语对白精品自拍视 | 一级黄色片毛片 | xh98hx国产在线视频 |