1、select * from a join b,与select * from a,b
结果是相同的,都是两张表的笛卡尔积
2、jion、inner join 和cross join
在inner join 没有加on条件时,join、inner join 和cross join没有区别
xxx join xxx,就等于 xxx inner join xxx,也等于 xxx cross join xxx,得到的结果都是两张表数据量相乘的笛卡尔积。例如a表有10条数据,b表有100条数据,jion之后的结果就是1000条数据。
3、加上on条件之后,查询性能更好
inner join on,ON语句的执行是在JOIN语句之前的,也就是说两张表数据行之间进行匹配的时候,会先判断数据行是否符合ON语句后面的条件,再决定是否JOIN
select * from a,b where xxx,会在内存中先生成一张数据量比较大的笛卡尔积表,增加了内存的开销
4、提高 inner join查询性能的方式
(1)以小表作为驱动表(inner join前面的为驱动表),大表作为被驱动表;
(2)为大表的条件字段创建索引;
(3)增大join_buffer_size。
参考:https://www.zhihu.com/question/34559578/answer/2287459774
参考:https://blog.csdn.net/qq_19800265/article/details/103401272
标签:知识,join,笛卡尔,xxx,cross,inner,mysql,select From: https://www.cnblogs.com/hushuer/p/17329500.html