zoukankan      html  css  js  c++  java
  • mysql 全表扫描、全索引扫描、索引覆盖(覆盖索引)

    full index scan:全索引扫描,查询时,遍历索引树来获取数据行。如果数据不是密集的会产生随机IO

    在执行计划中是Type列,index



    full table scan:通过读物理表获取数据,顺序读磁盘上的文件。这种情况会顺序读磁盘上的文件。

    在执行计划中是Type列,all



    covering index:覆盖索引,如果where条件的列和返回的数据在一个索引中,那么不需要回查表,那么就叫覆盖索引。

    在执行计划中是extra那一列,using index



    full index scan  vs full table scan

    全索引扫描并不一定就比全表扫描好,取决于数据存储位置。

    如果数据在内存,那么这两种没有太大区别。

    如果数据在磁盘,全表扫描比全索引扫描要好,这是因为,全表扫描是顺序读数据,sequential read,是顺序IO

    而全索引扫描,可能会产生随机读(reandom read),随机IO,显然,顺序读要比随机读快很多。


    查看执行计划的样例






  • 相关阅读:
    IO模型
    函数第一类对象,闭包,迭代器
    admin里面的注册模型类的写法
    升级pip
    Windows部署superset操作手册
    Python命名空间和作用域窥探
    使用CSS3画出一个叮当猫
    D
    [java]说说 JRE , JDK , JVM 三者之间的区别与联系
    H~N皇后问题
  • 原文地址:https://www.cnblogs.com/jpfss/p/9176147.html
Copyright © 2011-2022 走看看