解释查询行列中的较低值是否意味着更快的查询

时间:2021-07-26 16:50:08

标签: mysql explain

我有一个表,大约有 10M 条目,选择查询太慢,所以我尝试向表中添加复合索引,在添加复合索引后,解释查询显示的行数较少。但是在运行实际查询时,添加索引的测试表有时会比没有索引的表花费更多的时间。我知道多次运行相同的查询时,时间会随着 mysql 优化它而减少。有没有办法对实际性能改进进行基准测试。

无索引解释结果

Result1

用索引解释结果

Result2

表格描述和选择查询:enter image description here

1 个答案:

答案 0 :(得分:0)

简答:“可能”。

长答案:

将“行”列中的值相乘有时是预期(相对)性能的一个很好的指标。 “行”在第二个中不可见; Extra 有时会提供有用的信息。

如果您想进一步讨论,请提供

SHOW CREATE TABLE
SELECT ...

一般来说,最好先使用 = 列的复合索引,然后再进行“范围”测试。更多详情:http://mysql.rjweb.org/doc.php/index_cookbook_mysql

在该链接中是一种“更好”的基准查询方式:http://mysql.rjweb.org/doc.php/index_cookbook_mysql#handler_counts