假設我的表有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. 在MySQL上建立索引
- 3. .loc在Pandas-Python中建立索引
- 4. 在ElasticSearch建立索引後搜索
- 5. MySQL索引建立性能
- 6. Solr爲Sitecore建立索引
- 7. 建立在MySQL表的索引
- 8. 建立在SQL
- 9. 如何在sql中創建索引列?
- 10. 非常重要的SQL性能查詢 - 建立索引
- 11. 如何使用sql server建立網站搜索引擎
- 12. Redux對象的建立索引
- 13. z-index沒有正確建立索引
- 14. 幫助建立倒排索引
- 15. SOLR:建立索引時同義詞
- 16. 爲姓氏和名字建立索引
- 17. 建立全文索引錯誤
- 18. 如何爲搜索引擎建立文本索引?
- 19. 重建SQL索引 - 何時?
- 20. 什麼時候在lucene中建立索引
- 21. 如何在logstash conf中建立索引時添加文件名
- 22. 如何在MATLAB中建立數據序列的索引?
- 23. 如何使用列表索引在java中建立一個類
- 24. 在Elasticsearch中建立索引的新方法
- 25. 如何在MongoDB或Mongoid中爲散列字段建立索引?
- 26. 如何使用array_to_string在Postgresql中爲varchar數組建立索引?
- 27. 在mongoDB中的幾個字段建立索引
- 28. 如何在Google Search Appliance中爲大文件建立索引?
- 29. 如何在Perl中爲一堆文件建立索引?
- 30. 在循環中建立索引:var [x + 1]下標越界
索引不需要賦予記錄唯一標識,但通常由RDBMS使用索引來高效地實現UNIQUE約束和主鍵。 – Unreason 2010-09-13 12:11:12
更新索引字段或索引的一部分(對於多字段索引)時,索引也會更新。 – Unreason 2010-09-13 12:12:37
關於自動編號索引的好處是唯一性的保證。你不需要它,但除非你這樣做,否則它不能保證。 – 2010-09-13 12:39:13