阿里菜鸟面试之sql优化

sql优化

sql优化是一个很大的话题,我在这里举几个常用的例子:(主要针对mysql)

  1. 不要使用子查询

    select * from t1 where xxx in (select  xxx from t2);

    子查询在mysql5.6以前,内部的执行计划是先查外表在匹配内表的,而不是先查内表t2。因此当外表很大的时候,查询速度会非常慢。

    在mysql5.6之后,采用join对其进行优化,如上图的sql会转换成

    select t1.* from t1 join t2 on t1.xxx=t2.xxx;

    但是需要注意的是,优化只对SELECT有效,对UPDATE和DELETE无效。

  2. 避免函数索引

    例如:

    select * from t where YEAR(d) >=2016;

    因为mysql不支持函数索引,即使d上有索引,我们可以改成这样:

    select * from t where d >= '2016-01-01';
  3. 用 IN 来代替 OR

    select * from t1 where age = 1 OR age = 2 OR age =3;
    select * from t1 where age in (1,2,3);
  4. LIKE 不要把%放在最前面

    因为如果把%放在最前面,会进行全文查找,速度极慢。

    select * from t1 where name like '%jj';
  5. 只读需要的字段和行

    尽量不要使用select * ,需要的字段才筛选出来

    尽量使用条件查询,如果只需要前几条,使用LIMIT 进行查询

  6. 避免数据不一致

    如果数据类型不一致,会导致索引失效。

    select * from where id = '21';
    select * from where id = 21;
  7. 分组统计禁止排序

    默认情况下,MYSQL 对所有GROUP BY c1,c2….字段进行排序,如果我们并不需要这个排序,我们可以禁止。

    select * from t1 group by c1 order by null;
  8. 多次插入改成批量插入


insert into t (id, name) values(1,'A');INSERT INTO t (id, name) values(2,'B');INSERT INTO t (id, name) values(3,'C');
insert into t(id,name) values(1,'A'),(2,'B'),(3,'C');

参考:

  1. [SQL优化十大案例]: https://blog.csdn.net/z719725611/article/details/52922695 “SQL优化”

阿里菜鸟面试之sql优化相关推荐

  1. java面试(3)SQL优化

    对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.任何在Order by语句的非索引项或者有计算表达式都将降低查询速度 应尽量避免在 where ...

  2. MySQL · 性能优化· CloudDBA SQL优化建议之统计信息获取

    阿里云CloudDBA具有SQL优化建议功能,包括SQL重写建议和索引建议.SQL索引建议是帮助数据库优化器创造最佳执行路径,需要遵循数据库优化器的一系列规则来实现.CloudDBA需要首先计算表统计 ...

  3. 【面试】1110- 一年前端社招面试总结,入职阿里菜鸟

    前言 本篇文章也是认识的一位好朋友「东仔」,也是和Fly一年的前端,最近在面试和他交流了很多,还有雨哥,后面继续约他写一份面试题.最近Fly哥也在疯狂面试,差不多大中厂小厂.得物.B站.爱奇艺.蚂蚁. ...

  4. 2021年阿里菜鸟网络春招实习岗面试分享,简历+面试+面经全套资料!

    笔试 两小时5道算法题,在阿里自己的答题系统上完成 阿里一面 43min 1.自我介绍 2.介绍一下你最深刻的项目,项目架构是什么?(后面围绕项目展开提问) 3.项目中遇到的难题是什么?你怎么解决的? ...

  5. Java菜鸟面试突破系列之MySQL优化

    Java菜鸟面试突破系列之MySQL优化 前言:数据库优化问题历来都是技术面面试官们屡问不爽的话题,每每碰到诸如此类问题,我们在事后往往对自己的回答会有一些不大满意,鉴于此,特在这个面试突破系列里总结 ...

  6. 面试官:不会看 Explain执行计划,简历敢写 SQL 优化?

    来自:程序员内点事 昨天中午在食堂,和部门的技术大牛们坐在一桌吃饭,作为一个卑微技术渣仔默默的吃着饭,听大佬们高谈阔论,研究各种高端技术,我TM也想说话可实在插不上嘴. 聊着聊着突然说到他上午面试了一 ...

  7. 搞懂这些SQL优化技巧,面试横着走

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 来源:sohu.gg/FGG98 SQL 优化已经成为衡量程序猿优秀与否的 ...

  8. 面试官:不会看SQL执行计划,简历也敢写精通SQL优化?

    这是我的第 204 期分享 作者 | 程序员内点事 来源 | 程序员内点事(ID:chengxy-nds) 分享 | Java中文社群(ID:javacn666) 昨天中午在食堂,和部门的技术大牛们坐 ...

  9. mysql 触发器条件判断偶尔失效_mysql┃多个角度说明sql优化,让你吊打面试官!...

    ​正文约: 4744字 预计阅读时间: 12分钟 文章首发于我的微信公众号:moon聊技术,欢迎大家关注 mysql┃多个角度说明sql优化,让你吊打面试官! 目录 目录 前言 正文 1.表结构优化● ...

最新文章

  1. BAT、讯飞之后,又一国家人工智能开放创新平台诞生了
  2. 北斗核心器件100%国产化,已接入大部分智能手机
  3. mysql stop很久_mysql的timeout
  4. Apache Flink 零基础入门(四)Flink开发批处理应用程序
  5. Docker Centos 7.X部署Tomcat 并且修改Server.xml配置文件方案 并设置时区 只要十一步
  6. CentOS 5.3 安装nginx+mysql+php
  7. Android_自定义水波纹菜单弹出效果
  8. Maven系列一pom.xml 配置详解
  9. SVN 与 CVS 在【版本管理】上的区别~
  10. 如何让网站在百度有LOGO展示
  11. 21. yii 2 library
  12. uni-app开发环境搭建创建uni-app项目
  13. ACM的奇计淫巧_输入挂
  14. 软件需求收集、挖掘和分析方法
  15. 关于面试总结1-SQL学生表
  16. STM32H743 RCC时钟树的形象化理解
  17. 揭秘中小企业网络营销迷局与现状
  18. 三星S9勃艮第红如何为女人打造“第四维”魅力?
  19. 饥荒联机版连不上服务器_饥荒本地联机|饥荒联机版无法连接到klei服务器怎么回事_234游戏网...
  20. 西门子水处理1200PLC程序+触摸屏程序

热门文章

  1. VFW技术资料基本解析。
  2. CSS-动态计算高度
  3. Alpha 冲刺 —— 十分之九
  4. 使用putty从windows向远程服务器传递文件
  5. thinkphp 5.0.23 rce漏洞复现
  6. 小学生计算机能力考核,小学信息技术学科考核评价方案
  7. 双十一,作为老用户看我怎么优雅的薅阿里云羊毛!
  8. linux chrome看视频卡,linux系统上Chrome播放flash卡顿问题
  9. 史上最完整的网站运营推广方案样板示例
  10. Ubuntu18.04安装视频软件Mplayer(可播放.flv视频)