在编写复杂的SQL查询时,如何确保我们使用正确的索引并避免全表扫描?我通过确保只加入具有索引的列(主键,唯一键等)来完成此操作。这够了吗?Sql索引与全表扫描
2
A
回答
1
查看查询的执行计划以查看查询优化器是如何认为必须检索的。该计划通常基于表格的统计数据,指数的选择性和联合的顺序。请注意,优化器可以决定执行全表扫描比索引查找'便宜'。
其他的东西去寻找:
避免子查询,如果可能的。
减少where子句
4
向数据库询问您的查询的执行计划,然后从此处继续。
不要忘记索引出现在where子句中的列。
2
在使用“OR'谓词
这是很难说什么是最好的索引,因为有不同的策略,取决于形势。尽管如此,你仍然应该对索引进行coupe的工作。
- 索引有时会增加select语句的性能,并且总是会降低插入和更新的性能。
- 要索引表,不必将其作为某个字段的键。而且,现实生活中的指标几乎总是包含几个领域。
- 如果您的表现令人满意,请勿为“未来目的”创建任何索引。即使你根本没有索引。
调整索引时务必尝试分析执行计划。不要害怕尝试。
-
+
- 表扫描并不总是坏事。
这全是来自我。
1
使用数据库优化顾问(SQL Server)来分析您的查询。它会建议必要的索引来增加你的查询性能
相关问题
- 1. 全表扫描或索引扫描
- 2. Oracle索引 - 全表扫描/锁定
- 3. MySQL的 - 自加入 - 全表扫描(无法扫描索引)
- 4. SQL查询去为全表扫描,而不是基于索引扫描
- 5. 向后索引扫描与索引扫描
- 6. 如何直接扫描SQL索引表
- 7. 索引搜索与SQL Server中的索引扫描
- 8. 为什么QO选择聚簇索引扫描与表扫描?
- 9. 索引范围扫描VS索引跳跃式扫描VS索引快速全扫描
- 10. 多个索引与强制表扫描
- 11. SQL Server 2005在索引扫描之前进行全表排序
- 12. 表扫描和索引
- 13. 为什么选择索引范围扫描通过快速全索引扫描
- 14. 索引搜索与聚集索引扫描 - 为什么选择扫描?
- 15. 全表扫描代替索引范围扫描导致性能问题
- 16. 正在搜索表/索引扫描
- 17. SQL Server何时选择索引扫描?
- 18. 索引扫描,表扫描和索引查找有什么区别?
- 19. 搜索与扫描
- 20. 表扫描和聚簇索引扫描有什么区别?
- 21. SQL Server的全表扫描和负载
- 22. 表没有做索引扫描
- 23. 如何索引以避免全表扫描?
- 24. MySQL的执行全表扫描,即使存在索引
- 25. 索引扫描关系
- 26. 聚集索引扫描
- 27. mysql select count(*)与哪里扫描全表?
- 28. 集群索引扫描与索引查找
- 29. 索引扫描与探针代替索引查找
- 30. SQL服务器忽略索引并执行表扫描
你能澄清你的第二点吗? OR的问题究竟是什么? – SQB 2014-06-25 09:09:46