1. 程式人生 > >數據庫表常見分割技術-理論

數據庫表常見分割技術-理論

spa 如果 技術 數據庫 div -s 特定 根據 優點

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

數據庫表常見分割技術-理論