mysql分庫 分頁查詢
阿新 • • 發佈:2019-01-15
當前 ash 排序 路由算法 org answer clas png 方案
舉報
最多投票最新
0
三階魔方
2015/04/21 13:50
評論 ( 舉報
yeyingsheng
2015/04/21 14:35
感覺使用redis維護一個主鍵序列比較靠譜一點,但是沒有用過
回復 舉報
0
hylent
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
這樣的話就會出現主機單點問題了
回復 舉報
0
Jack_Q
2015/04/21 13:20
有沒有使用cobar或mycat
評論 ( 舉報
yeyingsheng
2015/04/21 14:33
沒有使用
回復 舉報
0
Brin想寫程序
2015/04/21 14:28
Mysql海量數據分表分庫如何列表分頁?
1.現在使用ElasticSearch了。基於Lucene的解決方案
2.必須將mysql裏的數據寫入到類似hbase這樣的分布式數據庫,查詢快。但分頁、查詢的話,可以在hbase前加一層solr,用於建立數據索引
如何對分庫後的數據進行分頁查詢?
yeyingsheng 發布於 2015/04/21 10:18 閱讀 7K+ 收藏 1 答案 7 Spring iBATIS si項目,現在連接6臺mysql數據庫,路由分庫算法是根據id的hash值%6,根據值不同分別存入6臺數據庫。現在不知道如何做分頁查詢列表,請問有誰知道嗎 收藏 (1)1、直接使用跨庫的多表聯合查詢。不建議。
2、向6臺數據庫server均發送一個查詢請求,然後對所有查詢結果進行匯總,再處理分頁邏輯。
3、建立一個總數據庫,只負責維護主鍵和必要的索引,以供分頁查詢。
4、使用redis維護一個主鍵序列,分頁操作就是截取該序列的一部分,其結果就是主鍵id集合。拿到id後便可以映射到多臺mysql服務器上查詢數據了。但畢竟數據被分布式存儲了,取到完整結果集必須要多次、多臺的數據庫訪問,這個肯定是避免不了。
註:“多臺”數據庫訪問的問題無解,但同臺“多次”數據庫訪問的問題可以通過程序優化。
復雜查詢情況下,只去前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 但是我如何去取前二十頁呢 回復 舉報 0 hylent 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分庫 分頁查詢