MYSQL:为什么这两个几乎相同的查询的时间顺序不同

MYSQL:为什么这两个几乎相同的查询的时间顺序不同,mysql,query-optimization,sql-order-by,Mysql,Query Optimization,Sql Order By,r、 用户id和c.user\u id被索引。为什么这些查询的执行时间有很大的不同?有什么方法可以加快第二个查询的速度吗?MySQL文档在顶部附近有一个项目符号列表,当性能不是您所期望的时,需要检查。所以,第一件事可能是浏览这个列表 根据您提供的信息,我们可以排除其中的许多,但其中许多涉及我们从您的问题中不知道但您可能知道的事情 如果这没有帮助,请通过EXPLAIN运行两个查询,这可能会告诉您为什么一个查询的性能不同于另一个查询 如果您在第二次查询中将r.user\u id=c.user\u i

r、 用户id和c.user\u id被索引。为什么这些查询的执行时间有很大的不同?有什么方法可以加快第二个查询的速度吗?

MySQL文档在顶部附近有一个项目符号列表,当性能不是您所期望的时,需要检查。所以,第一件事可能是浏览这个列表

根据您提供的信息,我们可以排除其中的许多,但其中许多涉及我们从您的问题中不知道但您可能知道的事情

如果这没有帮助,请通过
EXPLAIN
运行两个查询,这可能会告诉您为什么一个查询的性能不同于另一个查询


如果您在第二次查询中将r.user\u id=c.user\u id上的
更改为c.user\u id=r.user\u id
上的
,我倾向于根据上面链接的文档中的位来查看会发生什么情况,其中它讨论了“用于获取行的键与ORDER BY中使用的键不同”的情况.

如果输出没有差异(似乎是这样),为什么不使用第一个呢?比较两个查询的执行计划会告诉你什么?@Benjam,这样我们就可以学习了。@Wiseguy-我同意,但是如果OP是在寻找一个可用的解决方案,必须提出这个问题。表格中不同的行数可能会影响时间
SELECT *
FROM `resumes` AS r
LEFT JOIN seeker_data_cached AS c ON r.user_id = c.user_id
ORDER BY r.user_id

SELECT *
FROM `resumes` AS r
LEFT JOIN seeker_data_cached AS c ON r.user_id = c.user_id
ORDER BY c.user_id