在编写复杂的SQL查询时,我们如何确保使用正确的索引并避免全表扫描?我这样做是为了确保我只加入具有索引的列(主键,唯一键等)。这够了吗?
答案 0 :(得分:4)
向数据库询问查询的执行计划,然后从那里继续。
不要忘记索引where子句中出现的列。
答案 1 :(得分:2)
很难说什么是最好的索引,因为根据情况有不同的策略。你现在还应该对索引有什么好的东西。
调整索引时始终尝试分析执行计划。不要害怕尝试。
这就是我的全部。
答案 2 :(得分:1)
查看查询的执行计划,以查看查询优化器如何认为必须检索的内容。该计划通常基于表格的统计数据,指数的选择性和联接的顺序。请注意,优化程序可以决定执行全表扫描比索引查找“更便宜”。
其他要寻找的事情:
如果可能,请避免使用子查询。
尽量减少使用'OR' - 谓词
在where子句中
答案 3 :(得分:1)
使用Database Tuning Advisor(SQL Server)分析您的查询。它将建议添加必要的索引以调整您的查询性能