zoukankan      html  css  js  c++  java
  • 索引原理

    索引原理

    2019-08-23 20:59:00 weixin_30745553 阅读数 1

    原文链接:http://www.cnblogs.com/KbMan/p/11402610.html

    什么是索引?

    索引在mysql中也叫做键,是存储引擎快速找到记录的一种数据结构。

    目的:提高查询效率

    本质:不断缩小获取数据的范围,找到最终结果。

    索引数据结构

    b+树应运而生(B+树是通过二叉查找树,再由平衡二叉树,B树演化而来)

    一步步确定数据范围,层级越高,查询越慢,层级越低,查询越快。

    叶子节点,是个磁盘块,存放所有真实数据。

    在数据库中,B+树的高度一般在2~4层,这也就是说查找某一个键值的行记录时最多只需要2到4次IO,这倒不错。

    聚集索引和辅助索引

    不管聚集,辅助,内部都是B+树形式。叶子节点,是个磁盘块,存放所有真实数据。

    聚集索引

    按照每张表的主键构造B+树,叶子节点存放整张表行记录数据。

    好处:

    • 对主键的排序查找和范围查找速度很快,叶子节点的数据就是用户所要的数据。
    • 范围查询
    • 把主键id作为索引,ID占空间小,而且一定空间内能占的数量大。

    辅助索引

    表中除了聚集索引外,其他都是辅助索引。unique,index其他字段的索引都是辅助索引。

    辅助索引存的是字段对应的记录的ID值。

    覆盖索引

    select的字段和查询字段一样叫覆盖索引。

    mysql索引管理

    功能

    • 索引的功能就是加速查找
    • 主键,unique唯一键也都是索引,这些索引除了加速之外,还有约束的功能。

    mysql常用索引

    • 唯一索引:
      • 主键索引 primary key:加速查找+约束(不为空,不重复)
      • 唯一索引 unique:加速查找+约束(不重复)
    • 普通索引:index 加速查找
    • 联合索引
      • primary key(id, name):联合主键索引
      • unique(id, name):联合唯一索引
      • index(id, name):联合普通索引

    转载于:https://www.cnblogs.com/KbMan/p/11402610.html

  • 相关阅读:
    struts2ModelDriven模型驱动
    This Android SDK requires Android Developer Toolkit version 20.0.0 or above
    struts2Token Interceptor(处理表单重复提交)
    strutsOGNL标签
    嵌入式关系型SQLite数据库
    SQLite数据库的增删改查
    Pull解析器解析XML文件和生成XML文件
    proguard.cfg 系统找不到指定的文件
    struts2ONGL原理和表达式
    写代码的三重境界 Hanson
  • 原文地址:https://www.cnblogs.com/grj001/p/12223709.html
Copyright © 2011-2022 走看看