美文网首页
SQL 优化有哪些技巧?

SQL 优化有哪些技巧?

作者: 即墨9999 | 来源:发表于2022-07-13 08:13 被阅读0次

MySQL 相信大家一定都不陌生,但是不陌生不一定会用!会用不一定能用好!

今天,就跟大家一起复习一个高频面试考点,SQL 优化有哪些技巧?

1、创建索引

一定要记得创建索引

执行没有索引的 SQL 语句,肯定要走全表扫描,慢是肯定的。

MySQL 为了提升数据查询速率,采用 B+ 树结构,通过空间换时间 设计思想。另外每次对表数据做更新操作时,都要调整对应的 索引树 ,执行效率肯定会受影响。

阿里巴巴的开发者手册建议,单表索引数量控制在 5 个以内,组合索引字段数不允许超过 5 个。

其他建议:

禁止给表中的每一列都建立单独的索引。

每个 Innodb 表必须有个主键。

要注意组合索引的字段的顺序。

优先考虑覆盖索引。

避免使用外键约束。

2、避免索引失效

不要以为有了索引,就万事大吉。

殊不知,索引失效 也是慢查询的主要原因之一。

常见的索引失效的场景有哪些?

以 % 开头的 LIKE 查询。

创建了组合索引,但查询条件不满足 '最左匹配原则'。如:创建索引 idx_type_status_uid(type,status,uid),但是使用 status 和 uid 作为查询条件。

查询条件中使用 or,且 or 的前后条件中有一个列没有索引,涉及的索引都不会被使用到。

在索引列上的操作,函数 upper() 等,or、!= (<>)、not in 等。

3、锁粒度

MySQL 的存储引擎分为两大类:MyISAM 和 InnoDB。

MyISAM 支持表锁;InnoDB 支持行锁和表锁。

更新操作时,为了保证表数据的准确性,通常会加锁,为了提高系统的高并发能力,我们通常建议采用 行锁,减少锁冲突、锁等待 的时间。所以,存储引擎通常会选择 InnoDB。

4、分页查询优化

个人建议:先定位到上一次分页的最大 id,然后对 id 做条件索引查询。由于数据库的索引采用 B+ 树结构,这样可以一步到位

5、避免 select  *

MySQL 创建表后,具体的行数据存储在主键索引(属于聚簇索引)的叶子节点。

二级索引属于非聚簇索引,其叶子节点存储的是主键值。

6、Show Profile 分析 SQL 执行性能

相关文章

  • SQL 优化有哪些技巧?

    MySQL 相信大家一定都不陌生,但是不陌生不一定会用!会用不一定能用好! 今天,就跟大家一起复习一个高频面试考点...

  • Mysql 优化

    1.Sql优化 1)sql优化分析2)索引优化3)sql语句优化4)一些常用的技巧优化 (正则、函数) 2.优化数...

  • 组合索引经典

    你知道innodb吧?那一条SQL到数据库之后会经历什么过程?你说到了SQL优化,那你知道的SQL优化有哪些呢?啊...

  • (103)mysql优化之sql语句优化

    概述 该篇主要介绍一些常用的sql优化技巧 sql优化 1.select * from table_name wh...

  • Java中常见面试题一(中等)

    Java中常见面试题一(中等) SQL语句优化有哪些?数据库的优化怎样优化? 对查询进行优化,应尽量避免全表扫描,...

  • sql面试题大全

    sql面试题大全 1、[10条SQL优化技巧](http://www.wityx.com/post/250_1_1...

  • SQL优化技巧

    一、插入优化 1.1 手动提交事务 由于mysql默认事务提交方式是自动提交的,意味着当我们执行完一条insert...

  • 1.mysql性能优化

    2017.12.20 真题 请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?Sql语...

  • 6、SQL优化手段有哪些

    SQL优化手段有哪些 1、查询语句中不要使用select * 2、尽量减少子查询,使用关联查询(left join...

  • sql面试题大全

    sql面试题大全1、10条SQL优化技巧2、58到家MySQL数据库开发规范3、java.sql.Date和jav...

网友评论

      本文标题:SQL 优化有哪些技巧?

      本文链接:https://www.haomeiwen.com/subject/gcuzbrtx.html