1、选择合适的存储引擎
1、读操作多:MyISAM
2、写操作多:InnoDB
2、创建索引
在select、where、order by常涉及到的字段建立索引
3、SQL语句的优化
1、where子句中尽量不使用 !=,否则放弃索引全表扫描
2、尽量避免NULL值判断,否则放弃索引全表扫描
优化前:
select number from t1 where number is null;
优化后:
在number列上设置默认值为0,确保number列无NULL值
select number from t1 where number = 0;
3、尽量避免or连接条件,否则放弃索引全表扫描
优化前:
select id rom t1 where id = 10 or id = 20;
优化后:
select id from t1 where id = 10
union all #把多SQL查询命令结果拼接在一起
select id from t1 where id = 20
union all
select id from t1 where id = 30;
4、模糊查询尽量避免使用前置 %,否则全表扫描
优化前:
select name from t1 where name like "%c%";
5、尽量避免使用 in 和 not in,否则全表扫描
连续值可优化:
select id from t1 where id in (1,2,3,4);
select id from t1 where id between 1 and 4;
6、尽量避免使用 *,用具体的字段代替 * ,不要返回用不到的
任何字段