标签:
1.用于不要使用select * from table xxx。
需要查询哪些列就在语句中指明,一个表结构复杂时,可能会有上百列,使用*来查询时会造成很大的浪费。
2.选择合适的属性及大小
例如邮政编码使用char(6)就要比varchar(255)合适的多,省份、性别定义为enum也会提高效率。
3.使用join来代替子查询
原因是MySQL将不用创建临时表来完成2步操作。
select name,age from a where id not in (select id from b);可以用下面的语句代替:
select name,age from a left join b on a.id = b.id where b.id is null;
4.有索引的字段不要使用函数,会使索引失效
select id,times from count where total /7<24;应该改为:
select id,times from count where total<24*7;
5.使用explain来判断语句的效率
6.最左原则,(a,b)做联合索引时,where a = ?时会使用索引,where b = ?时不会使用索引。
(a,b,c)做联合索引时,where a = ?and b = ?时会使用索引,where b = ?and c = ?时不会使用索引。
7.使用like时,开头不要使用%,否则索引会失效。应该使用like ‘abc%’而避免like ‘%abc%’。
8.MySQL的一些操作将会产生临时表,这些操作应该避免:
标签:
原文地址:http://www.cnblogs.com/lnlvinso/p/4356579.html