当前位置:   article > 正文

44、SQL优化的经验?讲一下left join、right join和inner join?SQL几个关键字的执行顺序?_sql join优化中大表放左还是右边

sql join优化中大表放左还是右边

①我就说下我平时开发中的经验吧,比如建表的时候给字段选择合适的类型。

使用select语句时务必指明字段名称,不要直接使用select*。

注意SQL语句的编写,避免造成索引失效。还有就是使用合适的索引。

如果是聚合查询,尽量使用union all来代替union,因为就算没有重复数据,union也会执行一个排序来去重,效率比较低。

如果是表关联查询,能用inner join就不用left join和right join,如果必须使用的话,尽量要以小表为驱动。inner join会对两个表进行优化,优先把小表放外边,大表放里边,而left join和right join不会重新调整顺序。(外表不能使用索引,而内表可以)

②left join是以左表为主,即使右表中没有符合条件的行,也返回左表中的所有行。

right join是以右表为主,即使左表中没有符合条件的行,也返回右表中的所有行。

而inner join不以任何表为主,它只返回符合条件的行,也就是取两个表的交集。

MySQL不支持full join,可以使用union all将左连接和右连接的结果结合在一起来代替full join。

  1. from
  2. on
  3. join
  4. where
  5. group by
  6. having
  7. select
  8. distinct
  9. order by
  10. limit

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号