如何實現分庫分表,有哪些策略,為什么能提高查詢效率


在大型電商網站中,隨着業務的增多,數據庫中的數據量也是與日俱增,這時候就要將數據庫進行分庫分表了。下面分析下以下幾個問題:

1、數據庫如何實現分庫分表?

兩種方案:垂直和水平。

垂直拆分:根據業務進行拆分,比如可以分庫訂單數據庫,商品數據庫,支付數據庫等。

水平拆分:即根據表來進行分割:比如user表可以拆分為user0,、user1、user2、user3等等

2、分庫分表后如何實現聯合查詢呢?

可以使用第三方的數據庫中間件來實現,比如:mycat、shadinng-jdbc

具體原理:

當客戶端發出一條sql指令時:比如select * from user

此時中間件會將此語句根據有n個子表,拆分成n條語句:即select * from user1,select * from user2,select * from user3等多條sql語句,去子表中查詢。

然后將結果返回給中間件,中間件進行匯總返回給客戶端。而這些子語句是同時執行的,所以查詢效率非常高。

3、為什么分庫分表后可以提高查詢效率?

因為采用了第三方中間件多線程合並查詢。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM