程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 數據庫水平分割,垂直分割,庫表散列淺談

數據庫水平分割,垂直分割,庫表散列淺談

編輯:關於SqlServer
 

1,有時對表做分割可以提高性能。表分割有兩種方式:  
  1水平分割:根據一列或多列數據的值把數據行放到兩個獨立的表中。
  水平分割通常在下面的情況下使用。
  •表很大,分割後可以降低在查詢時需要讀的數據和索引的頁數,同時也降低了索引的層數,提高查詢速度。
   •表中的數據本來就有獨立性,例如表中分別記錄各個地區的數據或不同時期的數據,特別是有些數據常用,而另外一些數據不常用。
  •需要把數據存放到多個介質上。
水平分割會給應用增加復雜度,它通常在查詢時需要多個表名,查詢所有數據需要union操作。在許多數據庫應用中,這種復雜性會超過它帶來的優點,因為只要索引關鍵字不大,則在索引用於查詢時,表中增加兩到三倍數據量,查詢時也就增加讀一個索引層的磁盤次數。  
  2垂直分割:把主碼和一些列放到一個表,然後把主碼和另外的列放到另一個表中。
  如果一個表中某些列常用,而另外一些列不常用,則可以采用垂直分割,另外垂直分割可以使得數據行變小,一個數據頁就能存放更多的數據,在查詢時就會減少I/O次數。其缺點是需要管理冗余列,查詢所有數據需要join操作。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved