zoukankan      html  css  js  c++  java
  • MySQL实战04の索引(上)

    1. 为什么使用索引?

    索引就是为了提高数据查询的效率,就像书的目录一样。

    2. 索引的常见模型 

    哈希表
      哈希表是一种以键-值存储数据的结构,输入key,便可以找到对应的value。区间查询需全表扫描,效率低。适用于只有等值查找的场景,比如
    Memcached以及其他的NoSQL引擎
    有序数组
          按顺序存储,在等值查询和范围查询场景中的性能就都非常优秀。但是更新数据行必须移动插入记录后的所有记录,成本太高。只适用于静态存储引擎,存储不会再更新的数据。
    搜索树
        二叉搜索树的特点是:每个节点的左儿子小于父节点,父节点又小于右儿子。因为索引不止存在内存中,还要写在磁盘上,查询为了尽量少的读磁盘,我们要使用N叉树,N取决于数据块的大小。
    MYSQL的InnoDB使用的是B
    +树,每一个索引对应一棵B+
      B+ 树能够很好地配合磁盘的读写特性,减少单次查询的磁盘访问次数。 

    3. 索引类型

    主键索引(聚簇索引)
         主键索引的叶子节点存的是整行数据
    非主键索引(二级索引)
         非主键索引的叶子节点内容是主键的值
    基于主键索引和普通索引的查询有什么区别?
      主键查询只需要搜索ID的索引树;普通索引需要先搜索字段的索引树得到ID值,再到ID索引树搜索一次,这个过程成为回表(需要多扫描一棵索引树);
    从性能和存储方面考量,自增主键往往是更合理的选择。

    总结

    理解索引的模型和索引的类型

     原文地址https://time.geekbang.org/column/article/69236(极客时间付费专栏)

  • 相关阅读:
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战01
    C语言寒假大作战02
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    C语言I博客作业09
    C语言I博客作业08
    20199101 2019-2020-2 《网络攻防实践》综合实践
  • 原文地址:https://www.cnblogs.com/yangjiming/p/10169613.html
Copyright © 2011-2022 走看看