現(xiàn)在使用FirstName字段來進行搜索就可以利用索引來提高性能。這允許使用一個二分查找,平均log2 (277778) = 18.08 -> 19次數(shù)據(jù)塊訪問。找到實際記錄的地址,這需要進一步的塊讀取,這樣總數(shù)達到19 + 1 = 20次數(shù)據(jù)塊訪問,這和非索引表的數(shù)據(jù)塊訪問次數(shù)有天壤之別。
由于索引只是用來加速數(shù)據(jù)查詢,那么顯然對只是用來輸出的字段建立索引會浪費磁盤空間以及發(fā)生插入、刪除操作時的處理時間,所以這種情況下應(yīng)該盡量避免。此外鑒于二分搜索的特性,數(shù)據(jù)的基數(shù)或獨立性是很重要的。在基數(shù)為2的字段上建立索引,將把數(shù)據(jù)分割一半,而基數(shù)為1000則將返回大約1000條記錄。低基數(shù)的二分查找效率將降低為一個線性排序,而且查詢優(yōu)化器可能會在基數(shù)小于記錄數(shù)某個比例時(如30%)的情況下將避免使用索引而直接查詢原表,所以這種情況下的索引浪費了空間。
轉(zhuǎn)載自:http://blog.csdn.net/iefreer/article/details/15815455
新聞熱點
疑難解答