mysql中分表的方式有:1.垂直分表,包含有很多列的表拆分成多個表;2.水平分表,將大表根據某個字段和規則分散到多個表中;3.按號段分表,以user_id為區分;
mysql中分表的方式有以下幾種
1.垂直分表
垂直分表就是一個包含有很多列的表拆分成多個表,比如表A包含20個字段,現在拆分成表A1和A2,兩個表各十個字段(具體如何拆根據業務來選擇)。
優勢:在高并發的情境下,可以減少表鎖和行鎖的次數。
劣勢:在數據記錄非常大的情況下,讀寫速度還是會遇到瓶頸。
2.水平分表
水平切分主要是將某個訪問極其頻繁的大表再依照某個字段的某種規則來分散到多個表中。
劣勢:會給前端程序應用程序的SQL代碼的維護帶來很大的麻煩,這時候可以使用MySQL的Merge存儲引擎實現分表。
3.按號段分表
按號段分表是以user_id為區分,1~1000的對應DB1,1001~2000的對應DB2,以此類推。
優點:可部分遷移
缺點:數據分布不均