數據庫表常見分割技術-理論
阿新 • • 發佈:2018-01-22
spa 如果 技術 數據庫 div -s 特定 根據 優點 1、水平分割:
根據某些條件將數據放到二個夥多個堵路的表中。即按計量進行分割,不同的記錄
可以用分開保存,每個字表的列數相同。水平切割將表分為多個表。每個表包含
的列數相同,單身數據行更少。例如,可以將一個包含了十億行的表水平分區成12個
表,每個小表表示特定年份內一個月的數據。任何需要特定月份數據的查詢只需查詢
引用相應月份的表。
通常用來水平分割表的條件有:日期時間維度、地區維度等
水平分割通常在下面的情況下使用:
1、表數據量很大,分割後可以降低在查詢時需要讀的數據和索引的頁數,同時也降低
了索引的層數,加快了查詢速度
2、表中的數據本來就有獨立性,例如表中分別記錄了各個地區的數據或不同時期的數據
3、需要把數據存放到多個介質上
4、需要把歷史數據和當前數據拆分開
2、垂直分割:
把主鍵列和一列放到一個表中,然後把主鍵列和另外的一些列放到另外一個表中。將原始表
分成多個只包含較少列的表。如果一個表中某些列常用,而另外一些列不常用,責可以采用。
優點:
1、垂直分割可以是行數變小,一個數據塊就能存放更多的額數據,在查詢時就會減少I/O次數
2、垂直分割表可以達到最大化利用cache的目的
缺點:
1、垂直分割後,主鍵出現冗余,需要管理冗余列
2、會引起表連接join操作,需要從業務上規避
3、庫表散列:
表散列和水平分割相似,但沒有水平分割那樣的明顯分割界限,采用hash算法吧數據分散到各個表中,這樣IO就更加均衡。一般來說,按業務或者功能模塊將數據庫進行分離,不同的模塊對應不同的數據庫或者表,再按照一定的策略對某個頁面或者功能進行更小的數據庫散列。比如用戶表按照用戶ID進行散列,散列128張表,則應就能低成本的提升系統的性能,並且很好的擴展性
數據庫表常見分割技術-理論