我想了解下mysql+php的數據分表或者分庫的原理及實現.請高手指點
關于mysql分表
幕布斯6054654
2019-03-29 10:54:58
TA貢獻1946條經驗 獲得超3個贊
分表有橫向分表、縱向分表兩種方式。一種方式是如果數據庫記錄條數太多,可以根據一定的規則分表,比如按數量每10w條建一個表,比如按數據屬性,男用戶一個表,女用戶一個表,不男不女或搞不清的一個表;也可以用hash分表。然后可以用計算或者對照表的方式查表。還有一種是按列分表,一部分屬性在一個表,另一部分在另一個表。常見的像是user和userDetail表吧。
TA貢獻1784條經驗 獲得超2個贊
如果一個表條數過多,可以通過分表提高效率。我最近用到一次,每個用戶有多個note記錄,note以前放在一個表里,因為這個表會變得很大,所以提前分了出來。按照所屬用戶的id的最后一位分為note_0,note_1,.......note_9十個表。為了統一,每個表不使用自增的id作為主鍵,而是使用隨機的guid。這樣取出一條note需要兩個參數,user_id,和guid。前者用于得到表名,后者用于得到row。-------------------
舉報