mysql 多表联查的统计超慢, 50W 条数据的表 和 4K 条数据的表 多表联查 count 很慢
A 表 LEFT JOIN B表 ,普通的 select * 查询很快 但是统计查询 select count(*) 就很慢了.. 有办法提一下速度吗? select count(主键) 也还是很慢 a 表 4k 条数据、b 表 50W 条数据、c 表 400条数据
a - b 一对多 b - c 一对多
SELECT * FROM a LEFT JOIN b ON (a.b_id = b.b_id) LEFT JOIN c ON (b.c_id = c.c_id) //0.004 秒
SELECT count(*) FROM a LEFT JOIN b ON (a.b_id = b.b_id) LEFT JOIN c ON (b.c_id = c.c_id) //8秒
最新回答
大叔的仙女棒
2024-09-26 05:09:38
能具体点吗?快慢很可能只是个人感受,即使给出精确时间还要考虑硬件性能才能确定快慢。 有些查询就是很慢的,你这个50万主表加4K驱动表对于MYSQL来说也算是很经典的了。 至于优化,如果你就是想查count,就根本没必要做关联查询 select count(*) from A where EXISTS (......) 这是两表的 count(
主键
) count(*) count(0) 速度上你就当没区别就好了,不要迷信某些教条的东西
a b 调换一下位置试试 SELECT count(*) FROM b LEFT JOIN c ON (b.c_id = c.c_id) LEFT JOIN a ON (b.b_id = a.b_id)