和所有的秘笈一樣,最後一招都會又回到起點,最後我們來討論一下是否需要建立索引,也許進行全表掃描更快。
在大多數情況下,全表掃描可能會導致更多的物理磁盤輸入輸出,但是全表掃描有時又可能會因為高度並行化的存在而執行的更快。
如果查詢的表完全沒有順序,那麼一個要返回記錄數小於10%的查詢可能會讀取表中大部分的數據塊,這樣使用索引會使查詢效率提高很多。
但是如果表非常有順序,那麼如果查詢的記錄數大於40%時,可能使用全表掃描更快。
因此,有一個索引范圍掃描的總體原則是:
1)對於原始排序的表 僅讀取少於表記錄數40%的查詢應該使用索引范圍掃描。
反之,讀取記錄數目多於表記錄數的40%的查詢應該使用全表掃描。
2)對於未排序的表 僅讀取少於表記錄數7%的查詢應該使用索引范圍掃描。
反之,讀取記錄數目多於表記錄數的7%的查詢應該使用全表掃描。