mysql left join 效率优化问题
a,b,c三个表
a,b表1500+数据
c表6W数据
select a.id
from a
left join b on b.a_id=a.id
left join c on b.no = c.no
就这么简单的查询接近9S
1 SIMPLE a index id 4 1525 Using index
1 SIMPLE b index card_no 156 1617 Using where; Using index; Using join buffer (Block Nested Loop)
1 SIMPLE c index device_id 142 61007 Using where; Using index; Using join buffer (Block Nested Loop)
参考手册中MySQL如何优化LEFT JOIN和RIGHT JOIN——看了也没明白,还不是很懂
比如:在left join c on b.no = c.no and DATE_FORMAT(c.create_date, '%Y-%m-%d') = DATE_FORMAT(now(), '%Y-%m-%d')
也没效果。
求明白人指点该如何提高查询速度,求告知如何设置 减少最内层(c表6W多次)的循环次数
a,b表1500+数据
c表6W数据
select a.id
from a
left join b on b.a_id=a.id
left join c on b.no = c.no
就这么简单的查询接近9S
1 SIMPLE a index id 4 1525 Using index
1 SIMPLE b index card_no 156 1617 Using where; Using index; Using join buffer (Block Nested Loop)
1 SIMPLE c index device_id 142 61007 Using where; Using index; Using join buffer (Block Nested Loop)
参考手册中MySQL如何优化LEFT JOIN和RIGHT JOIN——看了也没明白,还不是很懂
比如:在left join c on b.no = c.no and DATE_FORMAT(c.create_date, '%Y-%m-%d') = DATE_FORMAT(now(), '%Y-%m-%d')
也没效果。
求明白人指点该如何提高查询速度,求告知如何设置 减少最内层(c表6W多次)的循环次数
...全文
相关推荐
MySQL 8.0.18 Hash Join不支持left/right join左右连接问题
如果在使用过程中遇到此类问题,可以尝试调整查询结构,或者寻找其他优化手段,如添加适当的索引,以提高查询效率。
MySQL联表查询基本操作之left-join常见的坑
这篇文章将深入探讨MySQL中LEFT JOIN的基本操作以及可能出现的问题。
关于sql的left join,right join,inner join,outerjoin
在进行复杂的多表查询时,熟练掌握JOIN操作至关重要,它能够帮助你优化查询效率,减少不必要的时间和资源消耗。在实际开发中,我们还需要考虑性能问题。
mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录
而LEFT JOIN + IS NULL可能会生成更大的临时表,特别是在没有索引或缓冲池不足以容纳中间结果时。对于日志文件过大问题,这是因为删除操作在简单恢复模式下会产生大量的日志记录。
mysql Join使用以及优化
接下来,关于DBA不让使用Join的问题,其主要原因是不恰当的Join操作可能会导致查询效率极低。如果表很大或者数据没有合适索引,Join操作会消耗巨大的资源,导致性能问题。


