• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    你真的知道怎么优化SQL吗

    简介

    虽然使用Explain不能够马上调优我们的SQL,它也不能给予我们一些调整建议,但是它能够让我们了解MySQL 优化器是如何执行SQL 语句的

    通过Explain,我们可以分析出以下结果:

    Explain命令的用法十分简单, 在 select语句前加上 Explain 就可以了, 例如:

    explain select * from user;

    它的结果主要包含以下字段

    id、select_type、table、partitions、type、possible_keys、key、ref、rows、filtered、extra

    接下来我们来看一下各个字段的含义

    id 查询序列号

    加载表的顺序

    连接查询各个表的加载顺序是相同的,所以都为1

    包含子查询的时候,先执行子查询,所以user表的id值最大

    select_type 查询类型

    常用取值有:

    table查询涉及的表或衍生表

    type查询类型

    通过 type 字段, 我们可以判断此次查询是全表扫描还是索引扫描等,type 常用的取值有:

    system:表只有一条数据

    const:针对主键或唯一索引的等值查询扫描, 简单理解为一次读取就获取到了数据,例如下面这个主键索引的查询

    eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。常见于主键或唯一索引扫描

    ref:非唯一性索引扫描,返回匹配某个单独值的所有行

    range:表示使用索引范围查询,例如=、>、>、>=、、=、IS、 NULL、=>、BETWEEN、IN等

    index: 所要查询的数据直接在索引树中就可以获取到, 而不需要扫描数据,例如:

    ALL: 表示全表扫描, 这个类型的查询是性能最差的查询

    type 类型的性能比较

    通常来说, 不同的 type 类型的性能关系如下:

    ALL index range ref eq_ref const system

    possible_keys查询时能够使用到的索引.

    possible_keys 表示 MySQL 在查询时, 能够使用到的索引. 注意并不是一定用,实际使用是由 由 key 字段决定

    key 查询使用的索引

    此字段是 MySQL 在当前查询时所真正使用到的索引.

    key_len使用索引的字节数

    这个字段可以评估组合索引是否完全被使用, 或只有最左部分字段被使用到.

    rows MySQL估算要查找到结果集需要扫描读取的数据行数

    Extra额外的信息

    常见的有以下几种内容:

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • 浅谈MySQL中优化sql语句查询常用的30种方法
    • sql语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句
    • SQLServer 优化SQL语句 in 和not in的替代方案
    • SQL SERVER 的SQL语句优化方式小结
    • MySQL SQL语句优化的10条建议
    • Mysql查询最近一条记录的sql语句(优化篇)
    • SQL Server中的SQL语句优化与效率问题
    • 常用SQL语句优化技巧总结【经典】
    • SQL语句优化方法30例(推荐)
    • 如何优化SQL语句的心得浅谈
    上一篇:建立在Tablestore的Wifi设备监管系统架构实现
    下一篇:navicat删除oracle表的操作方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    你真的知道怎么优化SQL吗 你,真的,知道,怎么,优化,