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

yumo6661个月前 (03-30)技术文章20
  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题,你会吗?

金三银四,金九银十是面试的最佳时机,有同学在面试测试岗位时经常遇到一些SQL难题,问到就两眼转动,给面试官一种不靠谱的感觉,这样的面试过程注定是要经历挫折的。老师在这里为大家准备了一些SQL面试经典题...

初学者最热门和棘手的10个T-SQL问题

T-SQL有助于在物理或虚拟实例中创建和管理对象,以及插入、检索、修改和删除数据表。国际标准化组织(ISO)和美国国家标准协会(ANSI)发布的SQL标准定义了一种软件语言,Transact-SQL就...

Mysql 常见的10道面试题

1、介绍一下事务的4个特性ACID事务特性含义解释Atomicity原子性同一个事务中的多条语句不可分割,要么全部成功,要么全部失败,不存在部分成功、部分失败Consistency一致性事务从一个一致...

SQL语句常见面试题(上)

描述主键、外键、超键是什么- 超键(super key): 在关系中能唯一标识元组的属性集 - 候选键(candidate key): 不含有多余属性的超键称为候选键。也就是在候选键中,若再删除属性,...

「春招系列」MySQL面试核心25问(附答案)

篇幅所限本文只写了MySQL25题,像其他的Redis,SSM框架,算法,计网等技术栈的面试题后面会持续更新,个人整理的1000余道面试八股文会放在文末给大家白嫖,最近有面试需要刷题的同学可以直接翻到...

MySQL经典面试题 14 道

面试中经常被问到的 MySQL 题目,本文总结了面试中的经典问题。1.主键(primary key)和候选键(candidate key)有什么区别?候选键 - 候选键可以是任何列或可以作为数据库中唯...