zoukankan      html  css  js  c++  java
  • InnoDB 存储引擎认识

    1. B+树存储,叶子节点双向链表;
    2. 索引(聚集索引/辅助聚集索引)
      1. 聚集:叶子节点逻辑顺序存放整张表的行记录数据(对主键的排序查找/范围查找非常快);
      2. 非聚集:叶子节点除包含键值外还包含一个书签(bookmark),告诉InnoDB存储引擎哪里可以找到与索引对应的行数据,因此辅助索引的书签就是相应行数据的聚集索引键;
    3. 索引的使用
      1. 字段高选择性,选择表中少行的原则(大概20%以下),否则扫描全表;可解释为什么符合索引(a,b,c)a=1&b>2&c=4的中断问题
      2. 提高读性能,引入了预读取(随机预读取/顺序预读取),一次IO读取多页数据到缓冲区
      3. 因为辅助索引不包含整行数据,一页存取量更多,所以总是先从辅助索引的叶子结点判断是否能得到所需数据。
      4. 复合索引每列数据都是有序的
      5. 查询某列,该列即建立了主键索引,又是复合索引的首部,只用到主键索引,(叶子节点存储更多,且不会通过辅助聚集索引再查聚集索引)where a=1 order by b 会走复合索引依据复合索引的列都是有序的,不会通过主键a的索引查出后再对b进行排序
  • 相关阅读:
    python 输入和输出
    python 深入模块和包
    python 模块
    python 字典 注意点
    javaNIO核心概念
    redis使用bit做只有两种情况的“状态“统计(如是否在线的用户统计)
    mysqlbinlog二三事儿
    mysql在windows下的服务安装
    javassist标识符
    使用redis调用lua脚本的方式对接口进行限流
  • 原文地址:https://www.cnblogs.com/gaoqing502/p/12926848.html
Copyright © 2011-2022 走看看