【发布时间】:2019-03-07 09:03:48
【问题描述】:
我已经阅读过类似的问题,但对我没有帮助。
我有疑问
SELECT `login`,
`photo`,
`username`,
`user`.`id`,
`name`,
`msg_info`
FROM `user`
LEFT JOIN `friends`
ON `friends`.`child` = `user`.`fb_id`
WHERE `friends`.`parent` = '1111'
ORDER BY `msg_info` DESC
这需要 0.7411 秒(甚至更多)
它显示 总共 158 行 行(好吧我可以限制它,但查询仍然很慢)
friends 和 user 表中的每一个都有超过 200.000 行
我该怎么做才能让查询更快?
谢谢!
【问题讨论】:
-
你必须使用order by吗?
-
在那里使用 LEFT JOIN 毫无意义 - 你的 where 子句让它作为 INNER JOIN 运行
-
限定所有列,这样我们就知道列属于哪个表,即到处都是tablename.columnname。
-
MassiveOwl,你说得对,我取消了订单,一切都变得美好!谢谢!
-
@CaiusJard 也许他需要将 friends.parent = 1111 放在 ON 子句而不是 WHERE 子句中,并且仍然想要左连接。
标签: mysql sql performance join