面试经常被问到的SQL优化

编程知识 行业动态 更新时间:2024-06-13 00:22:23

面试经常被问到的SQL优化


  作为一个后端开发程序猿,在平时工作中与数据库打交道是必不可少的,不管是在项目中,还是在以后跳槽去其他公司,对于MySQL的基本功我们必须得掌握,先分享一些常见的SQL优化小栗子供大家参考参考,有什么不对的希望大家在下方留言一起探讨。


1. 不要把SELECT子句写成 SELECT *

SELECT * FROM t_emp;

2. 对ORDER BY排序的字段设置索引

3. 少用IS NULL

SELECT ename FROM t_emp WHERE comm IS NULL; #不使用索引
SELECT ename FROM t_emp WHERE comm =-1;

4. 尽量少用 != 运算符

SELECT ename FROM t_emp WHERE deptno!=20; #不使用索引
SELECT ename FROM t_emp WHERE deptno<20 AND deptno>20;

5. 尽量少用 OR 运算符

SELECT ename FROM t_emp WHERE deptno=20 OR deptno=30; #不使用索引
SELECT ename FROM t_emp WHERE deptno=20
UNION ALL
SELECT ename FROM t_emp WHERE deptno=30;

6. 尽量少用 IN 和 NOT IN 运算符

SELECT ename FROM t_emp WHERE deptno IN (20,30); #不使用索引
SELECT ename FROM t_emp WHERE deptno=20
UNION ALL
SELECT ename FROM t_emp WHERE deptno=30;

7. 避免条件语句中的数据类型转换

SELECT ename FROM t_emp WHERE deptno=‘20’;

8. 在表达式左侧使用运算符和函数都会让索引失效

SELECT ename FROM t_emp WHERE salary*12>=100000; #不使用索引
SELECT ename FROM t_emp WHERE salary>=100000/12;
SELECT ename FROM t_emp WHERE year(hiredate)>=2000; #不使用索引
SELECT ename FROM t_emp
WHERE hiredate>=‘2000-01-01 00:00:00’;


  关于SQL优化还有很多很多,后续我也会为大家打来更详细的的SQL优化细节,及MySQL调优方面的相关知识。

更多推荐

面试经常被问到的SQL优化

本文发布于:2023-04-02 09:30:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/469ca52b96feb21b0a00072a804124b9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:问到   SQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!