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