數據庫拆分表的方法:1、水平拆分,按照表中邏輯關系和相關條件把表拆分成多個分表;2、垂直拆分,按照不同的表來拆分到不同的數據庫之上。
隨著數據的不斷擴大,有的數據表的規模會以幾何級增長,當數據達到一定規模時,數據的查詢,讀取性能就會變得緩慢,這時就需要拆分數據表,接下來在文章中將為大家詳細介紹在數據庫中怎么拆分表,希望對大家有所幫助。
為什么需要拆分表
當一個表的數據量很大時就比較耗時,這就需要對表進行拆分,把大表拆分成多個子表,那么在更新或者查詢數據的時候,壓力會分散到不同的表上。由于分表之后每個表的數據較小,不管是查詢還是更新都極大的提高了速度,即使出現最壞的“鎖表”的情況,那其他表還是可以并行使用。
數據表的拆分
數據表拆分可以分為兩種形式,分別是水平切分和垂直切分
水平拆分:根據表中數據的邏輯關系,將同一個表中的數據按照某種條件拆分到多臺數據庫(主機)上面,這種切分稱之為數據的水平(橫向)切分。
垂直拆分:按照不同的表來拆分到不同的數據庫(主機)之上,這種拆可以稱之為數據的垂直(縱向)拆分
水平拆分的方法
一般情況下使用“取模”的形式來將數據進行表存儲,如果用4張表就是id%4 結果會是0,1,2,3四種,user_0,user_1,user_2,user_3就夠了。需要注意的是在這個過程中需要新建一張臨時表,目的在于提供數據插入的自增id,得到自增id后再通過取模進行分表插入
垂直拆分的方法
把常用的字段放一個表,不常用的放一個表
把字段比較大的比如text的字段拆出來放一個表里面
使用的話是根據具體業務來拆,查詢時使用多表聯查,可以再配合redis存儲
總結: