在平常的开发工作中,我们经常需要对sql进行优化,这样提高响应速度,才能带来更好的用户体验。那么,我们应该从哪些方面进行sql优化呢?
1:查询需要使用的字段,避免使用select * 进行查询;
SELECT studentId from student;
2:需要经常查询的字段建立合适的索引,提高查询效率;
create index index_student on student(studentName);
3:需要关联其他表查询某一两个字段时,可以使用子查询,但是尽可能少用子查询;
SELECT t.studentName,(select s.scores from score s where s.studentId = t.studentId LIMIT 1) sscore from student t;
4:根据表之间的关联关系,建立合适的主键;
5:尽量避免使用null作为查询条件进行查询,可以插入一个空值。
select s.studentName from student s where s.studentName is null;
6:模糊查询时,尽量避免在关键词前面加关键字,如“%明%”,这样会进行全表扫描,尽量写成如下这样:
select s.studentName from student s where s.studentName like "小%";
7:如果是连续的数值,避免使用in,这样会导致全表扫描,尽量使用between:
select s.studentName from student s where s.studentId BETWEEN 11 and 13;
8:在子查询中,尽量用exists代替in:
SELECT * FROM student s WHERE EXISTS(SELECT s1.age FROM student1 s1 WHERE s1.id = s.studentId);
9:在查询中尽量避免使用or,可以使用union:
select s.studentName from student s where s.studentAge = 16 union all
select s.studentName from student s where s.studentAge = 18;
10:not in会导致无法使用索引,所以应该避免使用。
总结:以上总结了sql优化的基本知识。
知识就是要不断的学习,不断的复习,才会记忆的更加的深刻。加油,美好的风景一直在路上!