分庫,分表後連表查詢的問題解決方案

2022-04-03 17:08:53 字數 393 閱讀 5569

方案一:利用union,union all

方案二:建一張主表將你要連表查詢的字段放在其中,做好索引;你還記錄下使用者經常查詢的條件,把查出的資料快取,以便使用者經常呼叫。

方案三:

我們可以把經常要用到的資料寫到cache中,這樣以後要獲取的時候直接到cache裡拿。比如一天更新一次的情況(像德問的排名就是這樣),我們可以寫個cron,每天更新一次。

方案四:多執行緒處理各個分表

每個子表各開乙個執行緒分別查詢資料,然後進行合併。分表一般都是按時間進行拆分的,所以查詢的時候通過也會按時間進行查詢,也就做聚合的時候會用到跨表訪問,如果全表資料量很大,可以借助hadoop這類工具進行統計分析。

多執行緒處理是可以的,不過不能開太多,要根據處理器個數和總得連線數來做衡量

方案五:

分庫分表後如何解決不同維度查詢的問題

背景 大家在進行分庫分表的時候應該有碰到乙個問題,乙個資料需要根據兩種維度進行查詢,但是我們在進行分庫分表是只能根據一種維度進行。比如 使用者購買了商品產生了訂單,當使用者非常多的時候,我們會選擇訂單根據下單使用者的id進行分庫分表。但是這裡面存在乙個問題就是作為賣家要如何查詢我賣出的所有訂單呢?因...

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

分庫後,分頁查詢按照時間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語句發往各個分庫 即每...

mysql分表後怎麼索引 分庫分表後的索引問題

摘要 最近遇到乙個慢sql,在排查過程中發現和分庫分表後的索引設定有關係,總結了下問題。問題在進行應用健康度盤點時,發現有個慢sql 如下 select brandgoodid from brandgood 0020 where userid and brandgoodid in 1 2 表結構,按...