面试必问:怎样进行sql优化?

在平常的开发工作中,我们经常需要对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优化的基本知识。

知识就是要不断的学习,不断的复习,才会记忆的更加的深刻。加油,美好的风景一直在路上!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值