索引創建指南:
1、頻繁在where 從句中出現
2、頻繁在join關聯字段中
3、選擇具有高選擇性的鍵
4、別在具有很少的不同值的鍵上使用B-tree索引。這類鍵或表達式經常具有較差選擇性,所以不會是性能有更多的優化,
5、除非經常選擇的值比其他的值出現的頻次要低。要是這種情況,可有效使用位圖索引,但是如果在高并發的OLAP系統,位圖索引要是經常被改動,則不要使用位圖索引。
6、不要在常被修改到字段上建索引。
7、不要對僅出現在where從句中的函數或表達式中的字段建索引,要么就建函數索引
8、可考慮在外鍵上建索引。
9、創建一個索引時,評估該索引給查詢帶來的性能優化是否比因其而引起INSERT,UPDATE,DELETE操作的性能下降以及索引占用的空間更要值得。
10、復合索引
提高了選擇性(有時,組合的選擇性要比單個列的選擇性要高)
降低I/O(如果鎖被查詢選擇的列都在復合索引中,那Oracle可通過訪問索引來返回值而不需要訪問表。)
經常在WHERE從句中通過以AND組合出現,并且尤其是組合后比單一鍵選擇性更高,該組合上可考慮常見復合索引
如果查詢的列是組合列的子集,可考慮基于這些鍵建復合索引
索引的順序:
該索引能夠使WHERE從句可組成索引的前導列
如果WHERE從句中有幾個鍵非常高頻,可僅就這幾個列鍵建復合索引
如果所有的列出現在WHERE的頻率都一樣并且數據基于其中一列已物理排序,那么可將此列作為復合索引的第一個key。
使用非唯一性索引實現唯一性:
你可以用表的已存在的在UNIQUE約束字段或PRIMARY KEY約束字段上的非唯一性索引強制實現唯一性。這樣做的好處在于即使約束DISABLE了,
該索引仍然有效。所以,可讓一個DISABLED的UNIQUE或PRIMARY KEY重新ENABLE,不需要再重建唯一性索引。這樣可以在大數據表的ENABLE
操作中節省很多時間。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。