select attr1, attr2, ....
from A
left join B on ....
left join C on ....
left join ....
where ..
order by A.id
LIMIT ....左表A 不到9k条记录 连接了大概五六个表。 在无任何where条件时,查询要20s以上如果有对A的where查询, 查询结果就大大缩短
我没找到官方解释, 应该是对左表的where会在表连接之前被执行吧。
如果没有对A的where, 有对B, C等的where, 查询依然很费时。因为要求有A表的全记录,所以不能改用Inner join。所以这里遇到了优化的难题。
除了想到如果无查询条件时 先对A limit查询生成子表 然后再表连接 ,没有想到其他的优化办法。大家有啥建议不? 谢谢!
MySQLleft join 优化
from A
left join B on ....
left join C on ....
left join ....
where ..
order by A.id
LIMIT ....左表A 不到9k条记录 连接了大概五六个表。 在无任何where条件时,查询要20s以上如果有对A的where查询, 查询结果就大大缩短
我没找到官方解释, 应该是对左表的where会在表连接之前被执行吧。
如果没有对A的where, 有对B, C等的where, 查询依然很费时。因为要求有A表的全记录,所以不能改用Inner join。所以这里遇到了优化的难题。
除了想到如果无查询条件时 先对A limit查询生成子表 然后再表连接 ,没有想到其他的优化办法。大家有啥建议不? 谢谢!
MySQLleft join 优化
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货