鍍金池/ 問答/數據庫  網絡安全/ 大家是如何匯總分表數據的?

大家是如何匯總分表數據的?

比如評論表,我們分成了 100 張表,按照 userid 哈希算法分,那么后臺管理要顯示評論列表,總不能聯合查詢 100 張表,這種情況大家是如何做的?

回答
編輯回答
安若晴

我提個曲線救國的方法,就別按userid分表了,怪累的,直接根據評論時間按月分表,我們的經驗是Mysql的話每張表不超過2000萬條數據就行,這樣匯總起來就方便多了,后臺管理唯一需要注意的就是pagination的問題。

就算是拋磚引玉了,希望能幫到你。

更新:flc1125提到了負載的問題,我頂多能想到加redis緩存,還想問問這個評論的主要查詢業(yè)務是啥?是展示某個文章的最近評論?

2017年9月22日 13:39
編輯回答
野橘

我覺得還有一個方法,就是建一張評論總表,這張表的字段不必跟分表一致,最關鍵的是要評論 id,和創(chuàng)建時間,后臺管理就可以讀取這張總表,評論的詳情字段去分表查詢。

比如一頁 50 條記錄,最多 50 次另外的查詢,分別去分表查詢詳情數據展現出來,雖然多一些查詢,但是在后臺管理系統用不會造成很大壓力,

2017年3月12日 05:29
編輯回答
離夢

新建一張表,每隔一段時間更新這張表,比如頁面一次加載三十條評論,那么就一次查出三十條數據,等到時候頁面載入時從這里取。

2018年5月23日 08:30
編輯回答
維她命

首先你的表拆分法是對的。其次增加一個同步表。該表的數據保留最近X天的評論數據,數據來源,由其他100個表用聯合組成;數據操作由定時或mq方式同步過去。該表僅用于后臺使用(或并發(fā)量小的業(yè)務)

2018年7月18日 00:05