假设我的表有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