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;不知何故,我改变了左连接的夫妇内部连接,它不再需要很长时间,永远不会再使用内部连接。编辑:如果你能更快地理解到底发生了什么,你会比做一个“永远不要使用内部连接”的笼统决定更好。如果这是真的,我会感到惊讶不过这是真的!如果那是真的,我会感到惊讶的不过这是真的!