前言
前边分析了联表查询的SQL语句,今天来看看四个关联查询的相关案例分析。
正文
第一种方案:
第二种方案:
使用 show profiles;命令来查询看sql执行时间
以上两种方案,第一个的查询效率较高,且有优化的余地。第二个案例中,子查询作为被驱动表,由于子查询是虚表,无法建立索引,因此不能优化。
最终得到的结论:
子查询尽量不要放在被驱动表,有可能使用不到索引;
left join时,尽量让实体表作为被驱动表。
接下来再换一种写法:
再换另外的一种来做比较
然后通过show profiles;来看一下这个执行的时间
两个语句是不是很明显。
最后得出结论:
能够直接多表关联的尽量直接关联,不用子查询!
结束
所以sql语句怎么样去写,怎样去优化都需要查一下执行时间,然后去做响应的优化。