MySQL-添加多个ORDER BY后页面加载变慢

MySQL-添加多个ORDER BY后页面加载变慢,mysql,sql-order-by,performance,Mysql,Sql Order By,Performance,由于某种原因,在添加了两个以上的订单之后,我的查询变得非常慢。有人能帮我修一下吗?我确实需要使用以下orderby子句: ORDER BY candidates.user_id DESC, candidates.usr_type ASC, all_users.user_id DESC 确保所有字段都有索引。确保所有字段都有索引。主要问题是您混合了排序顺序,这在MySQL中非常慢。 无论是orderbyASC还是DESC,但不要混用它们 一种解决方案是为usr\u type定义一个以相反顺序运行

由于某种原因,在添加了两个以上的订单之后,我的查询变得非常慢。有人能帮我修一下吗?我确实需要使用以下
orderby
子句:

ORDER BY candidates.user_id DESC, candidates.usr_type ASC, all_users.user_id DESC

确保所有字段都有索引。

确保所有字段都有索引。

主要问题是您混合了排序顺序,这在MySQL中非常慢。
无论是
orderby
ASC还是DESC,但不要混用它们

一种解决方案是为
usr\u type
定义一个以相反顺序运行的额外复制字段。 像这样

Example
-------------------------------
id     usr_type    alt_usr_type

1      1           99
2      2           98
3      1           99
4      5           95
现在,您可以将选择定义为

ORDER BY candidates.user_id DESC
       , candidates.alt_usr_type DESC
       , all_users.user_id DESC
您的查询将运行得更快


请参阅:

主要问题是混合排序顺序,这在MySQL中非常慢。
无论是
orderby
ASC还是DESC,但不要混用它们

一种解决方案是为
usr\u type
定义一个以相反顺序运行的额外复制字段。 像这样

Example
-------------------------------
id     usr_type    alt_usr_type

1      1           99
2      2           98
3      1           99
4      5           95
现在,您可以将选择定义为

ORDER BY candidates.user_id DESC
       , candidates.alt_usr_type DESC
       , all_users.user_id DESC
您的查询将运行得更快


请参阅:

对您的查询运行解释,并将输出包括在您的答案中,例如解释xxx从酒吧订单中选择foo;不知何故,我改变了左连接的夫妇内部连接,它不再需要很长时间,永远不会再使用内部连接。编辑:只需更快地了解实际发生的情况,就比全面决定“从不使用内部联接”要好得多。在查询中运行解释并将输出包括在答案中,例如,解释xxx从酒吧订单中选择foo;不知何故,我改变了左连接的夫妇内部连接,它不再需要很长时间,永远不会再使用内部连接。编辑:如果你能更快地理解到底发生了什么,你会比做一个“永远不要使用内部连接”的笼统决定更好。如果这是真的,我会感到惊讶不过这是真的!如果那是真的,我会感到惊讶的不过这是真的!