mysql多表left join联合查询效率问题5

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql多表left join联合查询效率问题5相关的知识,希望对你有一定的参考价值。

mysql多表left join联合查询效率问题5比如有三个表a,b,c a表是b表数据量的100倍,b表是c表数据量的100倍,a表结构复杂字段多,bc表简单字段少,他们都有一个字段cid,是对应的,请问用 表a left join 表b left join 表c和表c left join 表b left join 表a 进行查询效率一样么?搜索条件字段都加过了索引

先拆开看,select * from a left join b on 条件,这个过程时先查询a表所有数据,然后根据on条件查询b表数据,最后加到查询a表的结果里面,所以在a表数据小于b表数据的情况下a left join b比b left join a 快,前提时有索引,三个表join,先看前两个表,就是aUbUc的关系,懂了吧!最后提醒一句如果关联表没有索引最好放最前面,效率会快一点!以上全部来自工作实践! 参考技术A 如果用左外联接
这二个查询含义不一样 结果也不一样
a在前是查询出全部a表数据
c在前 是查询出全部c表数据
如果不管结果 第一种效率高追问

现在的结构是这样的,c表有一百条数据,b表有一万条数据包含c表的一百条的cid,a表有一百万条数据包含c表的一百条cid,abc谁前后出的结果都一样,这种情况是a在前查询快呢还是c在前查询快呢?

以上是关于mysql多表left join联合查询效率问题5的主要内容,如果未能解决你的问题,请参考以下文章

Access的Left join多表联合查询

SQL多表联合查询(LEFT JOIN)条件差异

关于mysql的多表联合模糊查询问题

关于SQL 查询效率问题 left join 改成 inner join union

mysql多表联合查询并且可以补充没有的数据

mysql 从left join 到join到查询计划到联合索引的原理