项目中sql优化是提高项目执行效率的有效方式之一。如果你是程序员,使用好的sql不仅使得项目执行效率的提升,更是一个人技术能力的体现;如果你是项目管理者,检查程序员的sql是否是一个优质的sql至关重要,那么sql到底如何优化呢?
SQL优化方案:
1. sql中索引的使用技巧:
(1) 对于多列索引(复合索引),sql查询条件只有使用了最左边的列,索引才会生效。
(2) 对于like模糊查询,模糊匹配的字符串最前面禁止使用%、_等模糊匹配器的字符,否则索引将失效,如果最前面必须要用到模糊匹配,建议一般采用全文索引技术(sphinx(coresseek))。
(3) sql条件中有or关键字,or两边的条件必须都为索引(如果是组合索引,必须是第一个),否则索引全部无效。一般情况,能避免关键字or,就尽量避免使用。
(4) sql条件中如果有字段是字符串类型的字段,一定要用单引号或双引号引起来,否则索引无效。
2. group by使用优化:
在使用 group by 分组查询时,默认分组后还会自动排序,从而可能降低查询效率。
优化 : group by后面添加order by null。
3.连接代替子查询和关联查询:
一般情况下,用连接(join)代替子查询和关联查询,因为使用join, mysql不需要在内存中创建临时表。
SELECT * FROM tb_user_goods g,tb_shop s WHERE g.fk_shop_id=s.id;(普通)
SELECT * FROM tb_user_goods g INNER JOIN tb_shop s ON g.fk_shop_id=s.id;(更优)
本文出自 “姚午生的技术博客” 博客,转载请与作者联系!
原文地址:http://yaowusheng.blog.51cto.com/11020801/1853797