天天看點

資料庫的垂直分割、水準分割和表列散之間的“糾葛”

1,有時對表做分割可以提高性能。表分割有兩種方式:  

1水準分割:根據一列或多列資料的值把資料行放到兩個獨立的表中。

水準分割通常在下面的情況下使用。

•表很大,分割後可以降低在查詢時需要讀的資料和索引的頁數,同時也降低了索引的層數,提高查詢速度。

•表中的資料本來就有獨立性,例如表中分别記錄各個地區的資料或不同時期的資料,特别是有些資料常用,而另外一些資料不常用。

•需要把資料存放到多個媒體上。

2垂直分割:把主碼和一些列放到一個表,然後把主碼和另外的列放到另一個表中。

如果一個表中某些列常用,而另外一些列不常用,則可以采用垂直分割,另外垂直分割可以使得資料行變小,一個資料頁就能存放更多的資料,在查詢時就會減少i/o次數。其缺點是需要管理備援列,查詢所有資料需要join操作。

垂直分割: 按列進行分割,即把一條記錄分開多個地方儲存,每個子表的行數相同。 

水準分割: 按記錄進分分割,不同的記錄可以分開儲存,每個子表的列數相同。 

表散列: 與水準分割相似,但沒有水準分割那樣的明顯分割界限,它由哈希函數和鍵值決定一條記錄的儲存檔案,這樣是為了io更加均衡。 

以後大家在資料量比較大的情況下就可以試用這些方法來處理了