zoukankan      html  css  js  c++  java
  • mysql explain执行计划

    一、执行计划有什么用?

     二、主要指标:

    1. select_type
    • SIMPLE:简单的查询(没有union或子查询)
    • PRIMARY:最外层的查询(有union或子查询)
    • DERIVED:衍生表查询(FROM语句中的子查询)

    2. type
    • 从优到差排序如下:
    const:只匹配一行,根据主键或唯一键进行查询
    eq_ref:单行关联查询,根据主键或唯一键进行join
    ref:索引键值查询,根据普通索引进行查询或join
    range:索引范围查询
    index:索引扫描查询
    all:全表扫描查询

     3. possible_keys

    优化器可能用到的索引

    4. key

    实际用到的索引,没有则为null

    5. rows

    预估检查行数

    三、执行计划的原则
    • 查询类型保持为SIMPLE
    • 避免index和all
    • 确保用到索引,key不能为NULL • 检查行数rows越少越好
    • 禁止temporary(MySQL需要进行额外的排序来获取数据)和filesort(MySQL需要创建临时表来存放数据)

    四、MySQL性能规范:
    规范1
    禁止 Select *
    禁止 Or,使用Union(All)
    禁止 Select for update(用乐观锁)
    禁止 Delete(特别是全量delete),用Update做 软删除
    禁止关联子查询
    禁止条件字段函数,与隐式类型转换

    规范2
    • 一切Batch化:
    limit M, N,不超过100ms
    Batch insert :1000~5000行一个批次,操 作时间<1s
    IN(id1,id2 , ... , idn):列表控制在100~ 500,响应时间<100ms

    规范3
    • 禁止执行计划中的Filesort: – 合理的索引
    Order by NULL避免多余排序
    使用Join/Group by/Distinct,必须参考 filesort原则

     
  • 相关阅读:
    C#通信学习(一)
    ms sql server 大批量导入
    PostgreSQL
    服务器性能指标有哪些
    C#一些需要注意的点(中级)
    JSON.parse与eval区别
    NDK编程中如何在C文件中打印调试信息
    Stack switching mechanism in a computer system
    Weex 相关文章收集
    JavaScript HTML DOM 元素(节点)
  • 原文地址:https://www.cnblogs.com/unknows/p/11810626.html
Copyright © 2011-2022 走看看