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进行排序
  • 相关阅读:
    分析ARP攻击与欺骗
    IP数据包结构
    OSI 7层模型
    PKI
    求一个字符串所有的子序列:非递归和递归算法
    空当接龙求解:java版广度优先
    mysql 解决奇葩问题续篇。
    mysql 的一个奇葩问题
    symfony 之 admin 征途二 数据库相关
    symfony 之 admin 征途一 试运行
  • 原文地址:https://www.cnblogs.com/gaoqing502/p/12926848.html
Copyright © 2011-2022 走看看