您的位置:首頁技術文章
文章詳情頁

mysql - 數據庫分表分庫的問題?

瀏覽:101日期:2022-06-13 09:07:47

問題描述

舉個簡單的例子,以訂單表為例。

例如:1個商家。10個用戶的uid分別為[1,2...,10]。10個用戶的10個訂單在一個數據表A中。現在需要根據uid進行水平分表,將10個訂單分到10個表中,即有A0,A1...A9共10個表。

問題1:目前有哪些好用的分表分庫工具嗎(或者相關的指導資料)?請大家推薦一下。

問題2:分表完成之后,用戶查詢訂單表沒有問題,那么商家查詢這些訂單的時候怎么查詢呢(即分表之間的join,或者應當怎樣分表才能避免這種分表join)?

PS:不知道我的表述是否清楚,如果有不清楚的地方,還請大家指出讓我及時改正,謝謝大家。

最后給個簡易的表結構:

訂單表:

order_iduidshop_id訂單id用戶id商戶id

用戶表:

uidnicknameshop_id用戶uid昵稱商戶id

問題解答

回答1:

問題一:1、金山的Kingshardhttps://github.com/flike/king...

2、百度的heisenberghttps://github.com/brucexx/he...

3、58同城的Oceanushttps://github.com/58code/Oce...

4、淘寶toddle(不維護)https://github.com/alibaba/tb...

5、當當網的sharding-jdbchttps://github.com/dangdangdo...

問題二:沒有表結構,不過一般情況下都是這樣的。訂單表里包含訂單信息和訂單人的編號,人員表里包含人員編號和人員姓名,然后做連接查詢:

1select 訂單信息 from 訂單表 join 人員表 on 訂單表人員編號=人員表人員編號2where 人員表人員姓名=’xxx’

相關文章:
国产综合久久一区二区三区