2012-10-19 26 views
4

我必須通過使用索引來優化一些sql查詢。我有選擇,插入和刪除查詢。很顯然,索引在選擇查詢的情況下很有用。但是插入和刪除查詢會發生什麼情況?索引的使用是否會影響其性能?爲SQL語句建立索引

回答

1

是的。應該謹慎使用索引來優化讀取查詢。插入和刪除會受到性能方面的影響,因此您添加的索引越多。

3

是的。

索引是查詢性能與寫入性能之間的折中。您應該仔細選擇您需要的索引以獲得所需的讀取性能,方法是分析最常用的查詢;同時關注插入/更新成本。

雖然索引有助於查詢時的性能,但索引必須保持不變,並且在更新或插入時需要一定的成本。

這也是爲什麼(除了大小限制之外),我們不只是索引表的每一列:更新性能會導致停頓。

1

是的,因爲對於每個Insert,Update或Delete,數據庫引擎不僅要對錶本身進行修改,還必須修改操作影響的任何索引。

該效應的程度當然是依賴於指數(有多寬,無論是聚簇或非集羣,需要多少磁盤的IO來執行索引更新等

由於除了一些明顯的情況(主鍵/唯一約束條件等),只有存在性能問題時(或可以可靠地預測),指數才應該加以節省,