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

yumo6664个月前 (03-30)技术文章27
  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

相关文章

70道SQL经典面试题大全,看这一篇就够了

吐血整理了一周SQL面试题,包括了选择题、问答题、实战题。每道题都给大家加了详细的独家解析。几乎每个知识点都涉及到了。刷完这套题,关于SQL的面试妥妥的。题目来源:各大厂面试题、牛客网选择题(1)基础...

网络安全面试题-SQL注入问题总结

一、知识储备类1.SQL与NoSQL的区别?SQL:关系型数据库NoSQL:非关系型数据库存储方式:SQL具有特定的结构表,NoSQL存储方式灵活性能:NoSQL较优于SQL数据类型:SQL适用结构化...

MYSQL经典面试题汇总

1.非聚簇索引一定会回表查询吗?不一定,这涉及到查询语句所要求的字段是否全部命中了索引,如果全部命中了索引,那么就不必再进行回表查询。举个简单的例子:假设我们在员工表的年龄上建立了索引,那么当进行的查...

十个你必须会的mysql面试题

什么是SQL?结构化的查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。作用是用于存储数据、查询、更新和管理关系型数据库SQL中的约束有哪几种?1、非空约...

数据分析师面试,常问的问题有哪些?面试题集锦

在数据分析师面试中,掌握必备的知识和技能是至关重要的,例如,统计学基础知识、常用的数据分析工具、数据分析思维等,为了帮助你更好地准备面试,本文将为你带来一份数据分析面试题集锦,涵盖了数据分析师必备的核...