在查询数据时,要确定查询字段,不要查询多余字段。
select * from table;//这种偷懒写法在表字段超多100+,或者表数据超大时,消耗浪费很大,因为返回过多无用的字段会降低查询效率
优化策略:应该使用具体的字段代替*,只返回使用到的字段。
如:select id ,name ,age from student;
2、小心使用模糊查询
不要在where条件中使用左右两边都是%的like模糊查询,如:LIKE '%zhang%'
select id,name from student where name like '%zhang%';
优化策略:尽量在字段后面使用模糊查询。
3、尽量不要使用in 和not in
尽量不要使用in 和not in,会造成全表扫描。
select id ,name ,age from student where id not in(1,2,3)
优化:对于连续的数值,能用 between 就不要用 in对于子查询,可以用exists代替。
4、 尽量不要使用or,会造成全表扫描
尽量不要使用or,会造成全表扫描
SELECT * FROM t_order WHERE id =1 or id =3
优化策略:可以用union代替or。如下:
SELECT * FROM t_order WHERE id =1
UNION
SELECT * FROM t_order WHERE id =3
5、尽量不要在 where 子句中对字段进行表达式操作
尽量不要在 where 子句中对字段进行表达式操作,where条件里尽量不要进行null值的判断,null的判断也会造成全表扫描。
1、精准化查询内容在查询数据时,要确定查询字段,不要查询多余字段。select * from table;//这种偷懒写法在表字段超多100+,或者表数据超大时,消耗浪费很大,因为返回过多无用的字段会降低查询效率优化策略:应该使用具体的字段代替*,只返回使用到的字段。如:select id ,name ,age from student;2、小心使用模糊查询不要在where条件中使用左右两边都是%的like模糊查询,如:LIKE '%zhang%'select id,name from