我必須通過使用索引來優化一些sql查詢。我有選擇,插入和刪除查詢。很顯然,索引在選擇查詢的情況下很有用。但是插入和刪除查詢會發生什麼情況?索引的使用是否會影響其性能?爲SQL語句建立索引
4
A
回答
1
是的。應該謹慎使用索引來優化讀取查詢。插入和刪除會受到性能方面的影響,因此您添加的索引越多。
3
是的。
索引是查詢性能與寫入性能之間的折中。您應該仔細選擇您需要的索引以獲得所需的讀取性能,方法是分析最常用的查詢;同時關注插入/更新成本。
雖然索引有助於查詢時的性能,但索引必須保持不變,並且在更新或插入時需要一定的成本。
這也是爲什麼(除了大小限制之外),我們不只是索引表的每一列:更新性能會導致停頓。
1
是的,因爲對於每個Insert,Update或Delete,數據庫引擎不僅要對錶本身進行修改,還必須修改操作影響的任何索引。
該效應的程度當然是依賴於指數(有多寬,無論是聚簇或非集羣,需要多少磁盤的IO來執行索引更新等
由於除了一些明顯的情況(主鍵/唯一約束條件等),只有存在性能問題時(或可以可靠地預測),指數才應該加以節省,
相關問題
- 1. 在SQL中建立索引
- 2. 爲聯接語句創建索引
- 3. Solr爲Sitecore建立索引
- 4. SQL準備語句無效列索引?
- 5. 協助建立一個複雜的SQL語句爲vb.net
- 6. 爲HAVING子句中的列建立索引 - MySQL
- 7. 如何用多個ORDER BY子句爲表建立索引?
- 8. 如何在這個sql語句上創建索引?
- 9. Django的manage.py SQL不顯示索引創建語句
- 10. SQL創建搜索語句問題
- 11. Marriadb索引爲左通配語句
- 12. SQL:建立where子句
- 13. 爲姓氏和名字建立索引
- 14. 爲HDFS序列文件建立索引
- 15. 如何爲搜索引擎建立文本索引?
- 16. MySQL索引建立性能
- 17. 在MySQL上建立索引
- 18. KES建立索引System.AccessViolationException
- 19. 在Neo4j中建立索引
- 20. SQL語句引起錯誤
- 21. SQL中的「引用」語句
- 22. 自引用SQL語句
- 23. 試圖爲複雜的搜索方案構建SQL語句
- 24. 是否立即執行SQL語句?
- 25. SQL語句插入語句爲空?
- 26. 建立一個if語句到mysqli搜索
- 27. 在ElasticSearch建立索引後搜索
- 28. 建立動態哪裏條件在SQL語句
- 29. SQL語句 - 如何建立一個時間表圖
- 30. 建立批量插入語句powershell到sql