SQL优化这十条,面试的时候你都答对了吗?

yumo66610个月前 (03-30)技术文章94
  1. 尽量不要在要给在SQL语句的where子句中使用函数,这样会使索引失效。
  2. 如果已经确定查询结果只有一条数据(当表中数据的该字段是唯一的),在查询SQL末尾增加 limit 1,这样MySQL的查询执行引擎在找到1条数据之后就会停止搜索,提高效率。(mysql5.6之后有效,包括5.6)
  3. 模糊查询尽量使用右模糊:‘xx%’,这样可以利用上索引,而使用‘%xx’这种模糊查询会导致该查询字段上的索引失效。
  4. 如果非要使用表连接,最好要保证连接的两个字段都是创建了索引的。
  5. 查询的时候最好用什么数据查询什么数据,避免使用select *,原因是数据库访问往往是远程通过网络来访问,这也就意味着,查询结果也是通过网络来传输的,如果查询了额外的无用的数据,他们会额外占用网络带宽,数据传输效率也会降低。
  6. 建表时尽量使用非空约束 not null,可以使用‘’空串代替null。因为‘’不占用空间,null会占用空间的。
  7. 在SQL语句中不要有运算,否则MySQL会放弃索引。
  8. 对于百万级以上的表数据,如果要做表连接查询,一定要对表先分页,然后对分页结果再做表连接。
  9. 尽量避免大事务操作,这样会降低系统的并发能力。在满足实际业务的前提下,尽量缩短事务的边界。
  10. Where子句多条件and连接的情况,要把精确条件放在最先执行的位置,提高效率。Oracle中是从右至左。MySQL中是从左至右。

上一篇:系统架构设计,有了关系数据库,为何还要采用高性能NoSQL

相关文章

总结面试:SQL常见面试题-1

刚刚走过了金三银四,相信许多小伙伴已经得到了自己心仪的offer,在这里先恭喜大家啦!但可能还有一些小伙伴刚刚开始找工作,作为一名数据分析师,还是想总结一些面试的经验及SQL的笔试面试题给各位小伙伴,...

大厂面试SQL题(三) ——连续登陆(含间隔)(字节)

承继上篇文章 大厂面试SQL题(一) ——连续登陆,阐述了最为简易的连续登录题目。然而,倘若在面试题目中增添难度,将 隔天统计问题 纳入考量,该作何处理呢?沿用第一篇题目的场景实例:(1)存在一张用户...

SQL面试经典问题-开窗函数

分组取每组最大值案例:按课程号分组取成绩最大值所在行的数据select 学号, 课程号, max(成绩) as 最高分, from a group by 课程号分组取每...

「数分分析面试」大厂高频SQL笔试题(三)

数据分析SQL笔试题系列第3篇来啦!更多数据分析干货文章请移步共粽号:【数据分析星球】,领取大厂SQL笔试题库。之前笔试题的文章如果没有看可以戳:【数分面试宝典】大厂数分高频SQL笔试题(一)【数分面...