1. 程式人生 > >數據庫切庫、分庫、分表

數據庫切庫、分庫、分表

動態數據 alt idt 速度 提高 sql 操作 一個數據庫 並發

技術分享圖片

切庫的基礎和實際運用—讀寫分離:

如何方便進行讀寫分離,目前有兩種方式:

1.動態數據源切換

它是指程序運行時,把數據源動態的織入到程序中,讓指定的程序連接主庫還是從庫

自定義註解完成數據庫切庫

2.直接定義查數據源和寫數據源

直接在項目裏定義兩個數據庫連接,一個是主庫連接一個是從庫連接,更新數據的時候我們讀取主庫連接,查詢數據的時候讀取從庫連接

多數據源(切庫)和分庫的區別:

它們都是底層是多個數據庫在提供服務。

分庫是屬於在微服務應用拆分的時候都有自己的數據庫,而多數據源是在沒有進行應用拆分的時候就已經分成兩個庫了,根據業務使用不同的代碼連接不同的數據庫。

技術分享圖片

多個數據源的輕松支持

數據庫的分表:

什麽時候考慮分表?

當一個數據表很大,大到我們做了sql和索引優化之後,基本操作的速度還是影響使用,我們就必須考慮分表了

分表的好處: 分表後單表的並發能力提高了,寫操作效率也會提高。其次是查詢一次的時間短了,數據分布在不同的文件裏,磁盤的io磁盤io性能也提高了, 磁盤的讀寫鎖影響的數據量變小,插入數據庫需要重新建立的索引變少。 分表策略: 橫向分表 將表中不同的數據行按照一定規律分布到不同的數據庫表中(這些表保存在同一個數據庫中),這樣來降低單表數據量,優化查詢性能。 縱向分表 一般根據數據的活躍度進行劃分。 mybatis分表插件shardbatis2.0

數據庫切庫、分庫、分表