分庫後如何高效的做分頁

2022-03-12 10:41:53 字數 478 閱讀 2517

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

先決原則:

資料分庫時盡量選擇索引字段,最好此欄位還是唯一的。

資料分庫時建表時結合業務,選擇where後查詢比較頻繁的字段。

解決方案泛泛之談:

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

不建議。

2、向6臺資料庫server均傳送乙個查詢請求,然後對所有查詢結果進行彙總,再處理分頁邏輯。

時間換空間。取20條有序資料,6臺伺服器各取20條,彙總排序返回。

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

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

可能會有冗餘資料產生,需要同步冗餘資料開銷。

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

譬如阿里的中介軟體,mycat等,不過挺難找到的。

水平分庫分表後的分頁查詢

分庫後,分頁查詢按照時間time來排序order by。若查詢第x頁的資料,每頁y條。一共n個庫。步驟 將order by time offset x y 1 limit y,改寫成order by time offset 0 limit x y 1 y 服務層將改寫後的sql語句發往各個分庫 即每...

vue如何做分頁?

先來看一下效果圖 功能描述 1.點選頁面序號跳轉到相應頁面 2.點選單左 單右,向後 向前跳轉乙個頁面 3.點選雙左 雙右,直接跳轉到最後一頁 第一頁 3.一次顯示當前頁面的前三個與後三個頁面 4.始終顯示最後乙個頁面 html class u pages style margin bottom 2...

如何才能高效做運維?

很多公司整天研究,如何才能提高運維效率,達到高效運維呢?與人打交道遠沒有與機器打交道高效。每乙個人都有每乙個人的理由,運維事件難以推進!今天優秀的運維管理系統雲雀運維就和裡聊聊如何高效運維的話題!01 什麼是高效運維 我們收集了一些來自外部門對運維的印 tou 象 su 如下圖所示。其中,大家看是否...