我是否可以通过在fld_date上添加一个索引来改进"ORDER“。
SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;
查询在where子句中使用索引(fld1,fld2 -组合索引)。由于ORDER与索引不完全匹配,如果我确实用fld_date添加了一个索引,那么它将有助于通过fld_date性能来改进ORDER。?
发布于 2012-08-23 02:48:49
您应该添加一个索引(fld1,fld2,fld_date)。请注意,只有当fld1和fld2在WHERE
子句中设置为完全匹配时,它才能工作,非精确表达式(如<
或>
)将关闭索引以进行排序。
发布于 2018-01-15 11:53:01
查看聚集索引,它们在某些情况下可以用于提高大数据集的性能,这显然是SQL样式DB在计算能力非常有限时所使用的。
源:我正在与一位高级开发人员合作,他提到他们将使用索引来避免由于吞吐量限制而不得不选择数据库中的实际值。
根据我检查过的文档,它们只是“主键”,但它们与以前不同,可能需要挖掘才能从中获得任何模糊的性能好处。
更多信息可以在这里找到:https://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html
参见参考文章中的标题“通过优化影响顺序”。
https://serverfault.com/questions/420366
复制