分庫后如何高效的做分頁


現在連接6台mysql數據庫,路由分庫算法是根據id的hash值%6,根據值不同分別存入6台數據庫。現在不知道如何做分頁查詢列表?

先決原則:

數據分庫時盡量選擇索引字段,最好此字段還是唯一的。

數據分庫時建表時結合業務,選擇where后查詢比較頻繁的字段。

 

解決方案泛泛之談:

1、直接使用跨庫的多表聯合查詢。

不建議。

2、向6台數據庫server均發送一個查詢請求,然后對所有查詢結果進行匯總,再處理分頁邏輯。

時間換空間。取20條有序數據,6台服務器各取20條,匯總排序返回。

3、建立一個總數據庫,只負責維護主鍵和必要的索引,以供分頁查詢。

耦合業務,需要統計哪些sql需要維護哪些表的哪些字段。

可能會有冗余數據產生,需要同步冗余數據開銷。

4、找一些靠譜的中間件,對內部實現封裝,對外部實現透明。

譬如阿里的中間件,mycat等,不過挺難找到的。

 


免責聲明!

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



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