天天看點

資料庫讀寫分離

在大型電子商務系統中,大都采用讀寫分離技術,一個master資料庫,多個slave資料庫。master資料庫負責資料更新和實時資料查詢。slave資料庫負責非實時資料查詢。

在實際應用中,資料庫都是讀多寫少(讀取資料的頻率高,更新資料的頻率相對較少),讀取資料通常耗時較長,占用CPU較多。

把查詢從主庫中抽取出來,采用多個從庫,使用負載均衡,減輕master資料庫壓力。

有兩種方式可以實作讀寫分離:

第一種是我們常用的方式,定義2個資料庫連接配接,一個是masterDataSource,另一個是SlaveDataSource。更新資料的時候我們讀取masterDataSource,查詢資料時我們讀取SlaveDataSource。

第二種方式:動态資料源切換,在程式運作時,把資料源動态織入程式中,選擇讀取主庫還是叢庫。使用的技術有:annotation,Spring AOP,反射。