mysql - 分库后如果显示各分库下合并的数据
PHP中文网
PHP中文网 2017-04-17 14:49:14
0
3
701

B2C电商,假如有用户表,订单表,商品表,针对用户ID,进行hash后,分库,假设分为A,B,C,D四个库,相应的不同用户下的订单也存放在对应的A,B,C,D库里,商品表做冗余存放在所有库里,
那如果要在后台订单里看到所有的订单,这时候要怎么处理,把A,B,C,D的订单合并起来再排序?这套规则有组件可以实现吗?还是要自己写代码?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
小葫芦

訂單表結構是一樣的,建議在資料庫層去處理,sql語句union聯合查詢,然後進行order by,limit處理,程式端直接拿到處理後的資料;程式碼解決會吃記憶體

Ty80

分庫分錶本身就是一把雙面刃,如果單量在10玩,百萬級,不建議現在就分。
對於你說的這個查詢條件,如果需求還蠻大,查詢時候也蠻多的話,我建議單獨搭建一個庫,將之前分庫的資料再匯總過來(只匯總有查詢需要的),自己讀bin log,寫ETL就行,這樣除了解決你的需求外還有個好處就是分析統計很方便。
或直接用阿里的開源中間件,將資料庫和業務程序隔離開也行

PHPzhong

你這個以使用者維度分庫分錶的,如果要實作查詢,需要再以訂單維度再進行分庫分錶,所以會資料冗餘

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板