mysql分庫 分頁查詢

2022-09-04 11:30:11 字數 2385 閱讀 2671

1.現在使用elasticsearch了。基於lucene的解決方案

2.必須將mysql裡的資料寫入到類似hbase這樣的分布式資料庫,查詢快。但分頁、查詢的話,可以在hbase前加一層solr,用於建立資料索引

yeyingsheng 發布於 2015/04/21 10:18

閱讀 7k+

收藏 1

答案 7

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

收藏 (1)

分享舉報

最多投票最新0

2015/04/21 13:50

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

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

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

4、使用redis維護乙個主鍵序列,分頁操作就是擷取該序列的一部分,其結果就是主鍵id集合。拿到id後便可以對映到多台mysql伺服器上查詢資料了。但畢竟資料被分布式儲存了,取到完整結果集必須要多次、多台的資料庫訪問,這個肯定是避免不了。

注:「多台」資料庫訪問的問題無解,但同台「多次」資料庫訪問的問題可以通過程式優化。

引用此答案

舉報yeyingsheng

2015/04/21 14:35

感覺使用redis維護乙個主鍵序列比較靠譜一點,但是沒有用過

回覆 舉報

0hylent

2015/04/21 13:07

另建乙個主庫,有所有分庫的資料

引用此答案

舉報yeyingsheng

2015/04/21 14:45

回覆 @hylent : 你說的也挺有道理,不知道大家採取最多的方式是什麼?

回覆 舉報

hylent

2015/04/21 14:38

回覆 @1157624952 : 嗯,單點,可以主備。最佳答案中的,在redis裡維護索引的方法,也不錯,不過,就要和業務掛鉤了,多種排序方式需要維護多個序列。不過我還是覺得,資料放在記憶體中不太穩妥。。

回覆 舉報

yeyingsheng

2015/04/21 14:32

這樣的話就會出現主機單點問題了

回覆 舉報

0jack_q

2015/04/21 13:20

有沒有使用cobar或mycat

引用此答案

舉報yeyingsheng

2015/04/21 14:33

沒有使用

回覆 舉報

0brin想寫程式

2015/04/21 14:28

複雜查詢情況下,只去前20頁的內容。。也就是預設取200條,然後200*10做好排序,然後去前200條,分20頁給使用者顯示出來。

對於基於日期,序號的有序陣列的分頁,可以記錄當前分頁最後乙個的被分頁的值,作為stub,然後往後組裝。

引用此答案

舉報brin想寫程式

2015/04/21 16:58

回覆 @1157624952 : 直接查各個資料庫啊。。跟路由演算法沒關係。。

回覆 舉報

yeyingsheng

2015/04/21 15:52

@brin想寫程式 額,我是根據路由演算法插入相應的資料庫的,沒法每個查啊

回覆 舉報

brin想寫程式

2015/04/21 15:24

回覆 @1157624952 : limit 200,每個表都執行一遍。。

回覆 舉報

yeyingsheng

2015/04/21 14:46

但是我如何去取前二十頁呢

回覆 舉報

0hylent

2015/04/21 14:42

單純就索引來說的話,可以試試一些專門做全文索引的服務軟體。

不過這個只是我的想法,功能上應該可以,沒實際中這樣跑過,不知道穩定性怎麼樣

引用此答案

舉報yeyingsheng

2015/04/21 14:47

這個沒有試過

回覆 舉報

0郭幻程2015/04/21 16:24

向每個庫傳送同樣的資料,彙總,排序,分頁

為毛不用mycat

引用此答案

舉報0匿名t3a

2015/04/21 21:18

你需要乙個中介軟體

試試 amoeba for mysql 看看行不行

引用此答案

舉報

Mysql 分頁查詢 快照 Mysql分頁查詢優化

select from orders history where type 8 limit 1000,10 該條語句將會從表 orders history 中查詢offset 1000開始之後的10條資料,也就是第1001條到第1010條資料 1001 id 1010 資料表中的記錄預設使用主鍵 一...

mysql 分頁查詢 失效 mysql分頁查詢

比如每頁10條,分頁查詢 語法 select from table limit offset,rows offset指定要返回的第一行的偏移量,rows第二個指定返回行的最大數目。初始行的偏移量是0 不是1 select from table limit 0,10 第一頁 select from t...

分頁分庫問題

分頁身影多如狗 沒錯兒,這就是隨處可見的分頁技術!需要訪問的訊息量太大了,如果一次都給你,那只能讓你feel到等女友化妝出門的感覺 聰明的猿哥哥幫你想了個辦法,他不會一次性把所有訊息都給你,你只需稍等片刻就可以先看到一些猿哥哥覺得你比較關注的東西,如果覺得不夠,就再給你一些,也有可能你厭煩了猿哥哥的...