赞
踩
①我就说下我平时开发中的经验吧,比如建表的时候给字段选择合适的类型。
使用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。
③
- from
- on
- join
- where
- group by
- having
- select
- distinct
- order by
- limit
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。