• 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进行排序
  • 相关阅读:
    [转载]辗转相除法
    [转载]自由不是什么
    [翻译]与比尔·盖茨面对面
    [翻译]AJAX XMLHttpRequest对象 详解
    [转载]Win32应用程序中进程间通信方法分析与比较
    C# 中的类型转换
    Log4Net
    抽象类和接口
    有用的自定义pagecounter控件
    单点登陆单web应用的单点登陆
  • 原文地址:https://www.cnblogs.com/gaoqing502/p/12926848.html
Copyright © 2020-2023  润新知