mysql - 數(shù)據(jù)庫(kù)分表分庫(kù)的問(wèn)題?
問(wèn)題描述
舉個(gè)簡(jiǎn)單的例子,以訂單表為例。
例如:1個(gè)商家。10個(gè)用戶(hù)的uid分別為[1,2...,10]。10個(gè)用戶(hù)的10個(gè)訂單在一個(gè)數(shù)據(jù)表A中。現(xiàn)在需要根據(jù)uid進(jìn)行水平分表,將10個(gè)訂單分到10個(gè)表中,即有A0,A1...A9共10個(gè)表。
問(wèn)題1:目前有哪些好用的分表分庫(kù)工具嗎(或者相關(guān)的指導(dǎo)資料)?請(qǐng)大家推薦一下。
問(wèn)題2:分表完成之后,用戶(hù)查詢(xún)訂單表沒(méi)有問(wèn)題,那么商家查詢(xún)這些訂單的時(shí)候怎么查詢(xún)呢(即分表之間的join,或者應(yīng)當(dāng)怎樣分表才能避免這種分表join)?
PS:不知道我的表述是否清楚,如果有不清楚的地方,還請(qǐng)大家指出讓我及時(shí)改正,謝謝大家。
最后給個(gè)簡(jiǎn)易的表結(jié)構(gòu):
訂單表:
order_iduidshop_id訂單id用戶(hù)id商戶(hù)id用戶(hù)表:
uidnicknameshop_id用戶(hù)uid昵稱(chēng)商戶(hù)id問(wèn)題解答
回答1:問(wèn)題一:1、金山的Kingshardhttps://github.com/flike/king...
2、百度的heisenberghttps://github.com/brucexx/he...
3、58同城的Oceanushttps://github.com/58code/Oce...
4、淘寶toddle(不維護(hù))https://github.com/alibaba/tb...
5、當(dāng)當(dāng)網(wǎng)的sharding-jdbchttps://github.com/dangdangdo...
問(wèn)題二:沒(méi)有表結(jié)構(gòu),不過(guò)一般情況下都是這樣的。訂單表里包含訂單信息和訂單人的編號(hào),人員表里包含人員編號(hào)和人員姓名,然后做連接查詢(xún):
1select 訂單信息 from 訂單表 join 人員表 on 訂單表人員編號(hào)=人員表人員編號(hào)2where 人員表人員姓名=’xxx’
相關(guān)文章:
1. 請(qǐng)教使用PDO連接MSSQL數(shù)據(jù)庫(kù)插入是亂碼問(wèn)題?2. node.js - nodejs開(kāi)發(fā)中常用的連接mysql的庫(kù)3. Python爬蟲(chóng)如何爬取span和span中間的內(nèi)容并分別存入字典里?4. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處5. 視頻文件不能播放,怎么辦?6. python - 數(shù)據(jù)與循環(huán)次數(shù)對(duì)應(yīng)不上7. mysql - 把一個(gè)表中的數(shù)據(jù)count更新到另一個(gè)表里?8. 黑客 - Python模塊安全權(quán)限9. flask - python web中如何共享登錄狀態(tài)?10. mysql 查詢(xún)身份證號(hào)字段值有效的數(shù)據(jù)
