MySql优化1——SQL语句优化

时间:2021-02-13 06:06:25

一、尽量不要在sql语句中执行运算

// 原句:
select * from table where year(date) > 2011;

// 优化后:
select * from table where d > ‘2011-1-1

二、使用join时应小结果集驱动大结果集

同时应该把复杂的join查询拆分成多个query,因为query多个表时可能导致更多的锁定和堵塞。

select * from a join b on a.id=b.id
left join c on
left join d on
left join e on

三、link查询时%%

// 原句:
select * from table where name like %d%;

// 优化后:
select * from table where name >= ad and name <= zdz;

四、仅列出需要查询的字段

这对速度不会有明显影响,主要考虑节省内存

五、使用批量交互语句节省内存

// 原句:
intert into table values(1,1);
intert into table values(2,2);
intert into table values(3,3);

// 优化后:
insert into table values(1,2),(2,3),(3,3);

六、limit的基数比较大时使用between

// 原句:
select * from talbe limit 10000,10

// 优化后:
select * from talbe where id between 10000 and 10010

七、不要使用rand函数获取多条随机记录

// 原句 
select * from from talbe order by rand() limit 20;

// 优化后:以下这样是随机取一条记录,然后用程序执行20次,这样效率比rand高
select * from table ….. limit 1

八、避免使用null

九、不要使用commit(id),而要使用commit(*);

十、尽量不要做无谓的排序操作,而应该在索引中完成排序。

推荐:

MySql优化2——索引与性能分析

MySql优化3——服务器与配置优化