根據一列或多列資料的值把資料行放到兩個獨立的表中。即按記錄進分分割,不同的記錄可以分開儲存,每個子表的列數相同。
水平分割槽將表分為多個表。每個表包含的列數相同,但是行更少。例如,可以將乙個包含十億行的表水平分割槽成 12 個表,每個小表表示特定年份內乙個月的資料。任何需要特定月份資料的查詢只需引用相應月份的表。
水平分割通常在下面的情況下使用:
(1) 表很大,分割後可以降低在查詢時需要讀的資料和索引的頁數,同時也降低了索引的層數,提高查詢速度。
(2) 表中的資料本來就有獨立性,例如表中分別記錄各個地區的資料或不同時期的資料,特別是有些資料常用,而另外一些資料不常用。
(3) 需要把資料存放到多個介質上。
水平分割會給應用增加複雜度,它通常在查詢時需要多個表名,查詢所有資料需要union操作。在許多資料庫應用中,這種複雜性會超過它帶來的優點,因為只要索引關鍵字不大,則在索引用於查詢時,表中增加兩到三倍資料量,查詢時也就增加讀乙個索引層的磁碟次數。
垂直分割表(不破壞第三正規化),把主碼和一些列放到乙個表,然後把主碼和另外的列放到另乙個表中。將原始表分成多個只包含較少列的表。如果乙個表中某些列常用,而另外一些列不常用,則可以採用垂直分割,另外垂直分割可以使得資料行變小,乙個資料頁就能存放更多的資料,在查詢時就會減少i/o次數(每次查詢時讀取的block 就少)。其缺點是需要管理冗餘列,查詢所有資料需要join操作。
垂直分割表可以達到最大化利用cache的目的。
表雜湊與水平分割相似,但沒有水平分割那樣的明顯分割界限,採用hash演算法把資料分散到各個分表中, 這樣io更加均衡.
skype: tianlesoftware
email: [email protected]
blog:
weibo:
twitter:
facebook:
linkedin:
-------
**需要在備註說明
oracle
表空間和資料檔案的關係,否則拒絕申請
----
dba1 群:62697716(滿); dba2 群:62697977(滿) dba3 群:62697850(滿)
dba 超級群:63306533(滿); dba4 群:83829929 dba5群: 142216823
dba6 群:158654907 dba7 群:172855474 dba總群:104207940
水平分割 垂直分割 和 庫表雜湊 概念 說明
根據一列或多列資料的值把資料行放到兩個獨立的表中。即按記錄進分分割,不同的記錄可以分開儲存,每個子表的列數相同。水平分割槽將表分為多個表。每個表包含的列數相同,但是行更少。例如,可以將乙個包含十億行的表水平分割槽成 12 個表,每個小表表示特定年份內乙個月的資料。任何需要特定月份資料的查詢只需引用相...
表的垂直分割和水平分割
1,水平分割 例 qq的登入表。假設qq的使用者有100億,如果只有一張表,每個使用者登入的時候資料庫都要從這100億中查詢,會很慢很慢。如果將這一張表分成100份,每張表有1億條,就小了很多,比如qq0,qq1,qq1.qq99表。使用者登入的時候,可以將使用者的id 100,那麼會得到0 99的...
水平分割和毒性逆轉的作用
水平分割和毒性逆轉主要是針對動態路由協議rip中,避免路由環路,提高收斂速度產生的。水平分割產生原因 產生環路的一種情況是 路由器a將從路由器b學習到的路由資訊又告訴給了路由器b。最終,路由器b認為通過路由器a能夠到達目標網路,路由器a認為通過路由器b能夠到達目標網路。路由資料報的時候,資料將在兩個...