大家知道Mysql语句优化吗?在数据库日常维护中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要因素。当然还有其他方面的,比如OS优化,硬件优化,MySQL Server优化,数据类型优化,应用层优化,但是这些都没有SQL语句优化来的重要。
一、尽量避免在列上运算,这样会导致索引失效
Mysql中基本语句优化的原则小结
select * from t where YEAR(d) >= 2011;
优化为
select * from t where d >='2011-0101'
二、使用 JOIN 时,应该用小结果集驱动大结果集,同时把复杂的 JOIN 查询拆分成多个query,因为 JOIN 多个表,可能导致更多的锁定和堵塞
三、使用 LIKE 时,避免使用 %%
四、select 指定查询字段,不要全查出来,节省内存
五、使用批量插入语句节省交互
六、limit的基数比较大时,使用 between,between 限定比 limit 快,但是between也有缺陷,如果id中间有断行或是中间部分id不读取的情况,数据会少
select * from t where 1 limit 100000,10
优化为
select * from t where id between 100000 and 100010
七、不要使用 rand 函数取多条随机记录
八、避免使用 NULL
九、不要使用 count(id) , 而应该是 count(*)
十、不要做无谓的排序操作,而应尽可能在索引中完成排序
来源: http://www.51edu.com/it/bckf/489367.html