假設我的表有10列....我必須選擇哪些列來創建索引?有沒有任何指導原則可以做到這一點?索引有什麼缺點?如果我更新列是INDEX的一部分,那麼會發生什麼?它會降低INDEXES的性能嗎?在SQL中建立索引
2
A
回答
3
從其他職位:
回答問題1:
1.1您應該經常使用在WHERE子句中的列創建索引。
1.2您應該在經常用於連接表的列上創建索引。
1.3您應該在ORDER BY子句中經常使用的列上創建索引。
1.4您應該在表中具有少數相同值或唯一值的列上創建索引。
1.5由於全表掃描可能比索引查詢更快,因此不應在小表(僅使用少數塊的表)上創建索引。
1.6如果連續索引中的多個列在WHERE子句中頻繁使用,請將最具選擇性的列放在CREATE INDEX語句中。
1.7列中有許多空值,您不搜索非空值。
1.8主鍵和唯一鍵自動具有索引,但您可能需要在外鍵上創建索引;
回答問題2:
2.1以前的規則
回答問題3:
3.1如果不考慮以前的建議,那麼指數變在數據庫的良好性能中中斷。
回答問題4和5:
4.1,5.1不要被頻繁修改索引列。修改索引列的UPDATE語句和修改索引表的INSERT和DELETE語句比沒有索引時花費的時間更長。這些SQL語句必須修改索引中的數據以及表中的數據。他們還產生額外的撤消和重做。
1
需要索引爲您的記錄提供唯一標識。
更新記錄時,索引應保持不變並保持不變。
相關問題
- 1. 在Neo4j中建立索引
- 2. 爲SQL語句建立索引
- 3. 在MySQL上建立索引
- 4. 在Neo4j 2.0中建立索引
- 5. .loc在Pandas-Python中建立索引
- 6. 在ElasticSearch建立索引後搜索
- 7. MySQL索引建立性能
- 8. KES建立索引System.AccessViolationException
- 9. Solr爲Sitecore建立索引
- 10. Sql Server 2008 FullText沒有在後臺建立索引
- 11. 建立在MySQL表的索引
- 12. 如何在分區內建立索引?
- 13. 建立在SQL
- 14. 如何在sql中創建索引列?
- 15. 如何使用sql server建立網站搜索引擎
- 16. 非常重要的SQL性能查詢 - 建立索引
- 17. 在SQL數據庫中實現用戶定義的字段並建立索引
- 18. 重建SQL索引 - 何時?
- 19. Redux對象的建立索引
- 20. 幫助建立倒排索引
- 21. 爲姓氏和名字建立索引
- 22. 爲HDFS序列文件建立索引
- 23. SOLR:建立索引時同義詞
- 24. z-index沒有正確建立索引
- 25. 建立一個搜索引擎
- 26. 建立全文索引錯誤
- 27. 使用唯一索引對列表建立索引
- 28. 如何爲搜索引擎建立文本索引?
- 29. 爲Rails 3中的後續全文搜索建立索引
- 30. 使用T-SQL創建索引返回索引存在錯誤
索引不需要賦予記錄唯一標識,但通常由RDBMS使用索引來高效地實現UNIQUE約束和主鍵。 – Unreason 2010-09-13 12:11:12
更新索引字段或索引的一部分(對於多字段索引)時,索引也會更新。 – Unreason 2010-09-13 12:12:37
關於自動編號索引的好處是唯一性的保證。你不需要它,但除非你這樣做,否則它不能保證。 – 2010-09-13 12:39:13