堆表和索引組織表區別

2021-06-27 06:09:16 字數 810 閱讀 9192

堆表(heap table)資料插入時時儲存位置是隨機的,主要是資料庫內部塊的空閒情況決定,獲取資料是按照命中率計算,全表掃表時不見得先插入的資料先查到。

索引表(iot)資料儲存是把表按照索引的方式儲存的,資料是有序的,資料的位置是預先定好的,與插入的順序沒有關係。

索引表的查詢效率比堆表高(相當於查詢索引的效率),插入資料的速度比堆表慢。

索引表適用場景:

適用於資訊檢索、空間和olap程式。

1、 **查詢表。

2、 經常通過主碼訪問的表。

3、 構建自己的索引結構。

4、 加強資料的共同定位,要資料按特定順序物理儲存。

5、 經常用between…and…對主碼或唯一碼進行查詢。資料物理上分類查詢。如一張訂單表,按日期裝載資料,想查單個客戶不同時期的訂貨和統計情況。

常用資料庫支援情況:

oracle支援堆表,也支援索引組織表

postgresql只支援堆表,不支援索引組織表

innodb只支援索引組織表

補充:(來自另一文)

堆表(heap table) 就是一般的表,獲取表中的資料是按命中率來得到的。沒有明確的先後之分,在進行全表掃瞄的時候,並不是先插入的資料就先獲取。資料的存放也是隨機的,當然根據可用空閒的空間來決定。

而iot就是類似乙個全是索引的表,表中的所有欄位都放在索引上,所以就等於是約定了資料存放的時候是按照嚴格規定的,在資料插入以前其實就已經確定了其位置,所以不管插入的先後順序,它在那個物理上的那個位置與插入的先後順序無關。這樣在進行查詢的時候就可以少訪問很多blocks,但是插入的時候,速度就比普通的表要慢一些。

堆表和索引組織表區別

堆表 heap table 資料插入時時儲存位置是隨機的,主要是資料庫內部塊的空閒情況決定,獲取資料是按照命中率計算,全表掃表時不見得先插入的資料先查到。索引表 iot 資料儲存是把表按照索引的方式儲存的,資料是有序的,資料的位置是預先定好的,與插入的順序沒有關係。索引表的查詢效率逼堆表高 相當於查...

堆表和索引組織表區別

堆表 heap table 資料插入時時儲存位置是隨機的,主要是資料庫內部塊的空閒情況決定,獲取資料是按照命中率計算,全表掃表時不見得先插入的資料先查到。索引表 iot 資料儲存是把表按照索引的方式儲存的,資料是有序的,資料的位置是預先定好的,與插入的順序沒有關係。索引表的查詢效率逼堆表高 相當於查...

堆表和索引組織表區別

堆表 heap table 資料插入時時儲存位置是隨機的,主要是資料庫內部塊的空閒情況決定,獲取資料是按照命中率計算,全表掃表時不見得先插入的資料先查到。索引表 iot 資料儲存是把表按照索引的方式儲存的,資料是有序的,資料的位置是預先定好的,與插入的順序沒有關係。索引表的查詢效率逼堆表高 相當於查...