我可以通过在 fld_date 上添加索引来改进“ORDER BY”吗?
SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;
该查询在 where 子句中使用 (fld1,fld2 - 组合索引) 的索引。由于 ORDER BY 与索引不完全匹配,如果我添加一个带有 fld_date 的索引,它是否有助于提高 ORDER BY fld_date 性能。?
我可以通过在 fld_date 上添加索引来改进“ORDER BY”吗?
SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;
该查询在 where 子句中使用 (fld1,fld2 - 组合索引) 的索引。由于 ORDER BY 与索引不完全匹配,如果我添加一个带有 fld_date 的索引,它是否有助于提高 ORDER BY fld_date 性能。?
查看聚簇索引,它们可用于在某些情况下使用大型数据集来提高性能,显然这就是计算能力非常有限时 SQL 风格的数据库所使用的。
资料来源:我正在与一位高级开发人员合作,他提到他们将使用索引来避免由于吞吐量限制而不得不选择数据库中的实际值。
根据我检查过的文档,它们只是“主键”,但它们与以前不同,可能需要挖掘才能从中获得任何模糊的性能优势。
可以在此处找到其他信息:https ://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html
请参阅参考文章中的标题“影响 ORDER BY 优化”。
您应该在 (fld1、fld2、fld_date) 上添加索引。请注意,仅当 fld1 和 fld2 在
WHERE
子句中设置为完全匹配时它才会起作用,非精确表达式如<
or>
将关闭索引以进行排序。