于是我改成了count(1)、count(id),然而都不行。
网上资料说MySQL对count(*)做了特别的优化,按理来说应该是最快的,然而三个都不约而同的非常慢。
解决方案是,为ID加了个唯一键:
之后再使用count(*)便能正常查询了:
对于这个问题的原因,依旧没能想明白为什么。欢迎大家相互讨论~
能具体点吗?快慢很可能只是个人感受,即使给出精确时间还要考虑硬件性能才能确定快慢。有些查询就是很慢的,你这个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)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)