搜尋

首頁  >  問答  >  主體

mysql - 資料庫分錶分庫的問題?

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

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

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

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

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

最後給個簡易的表格結構:

訂單表:

order_id uid shop_id
訂單id 用戶id 商戶id

用戶表:

uid nickname shop_id
用戶uid 暱稱 商戶id
为情所困为情所困2793 天前606

全部回覆(1)我來回復

  • 为情所困

    为情所困2017-05-18 10:51:13

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

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

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

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

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

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

    1select 訂單資訊 from 訂單表 join 人員表 on 訂單表人員編號=人員表人員編號
    2where 人員表人員姓名='xxx'

    回覆
    0
  • 取消回覆