mysql索引原理以及应用

2018-12-12  本文已影响0人  犄角芝士

一、什么是索引?

正确的创建合适的索引是提升数据库查询性能的基础。

索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构。

二、为什么要用索引?

三、为什么是B+Tree

1、二叉查找树

2、平衡二叉查找树

3、多路平衡查找树B-Tree

4、加强版多路平衡查找树B+Tree

5、B+Tree与B-Tree的区别

  1. B+节点关键字搜索采用闭合区间
  2. B+非叶节点不保存数据相关信息,只保存关键字和子节点的引用
  3. B+关键字对应的数据保存在叶子节点中
  4. B+叶子节点是顺序排列的,并且相邻节点剧有顺序引用的关系

6、为什么选用B+Tree?

四、Mysql中B+Tree索引的体现形式

1、myisam引擎

2、innodb引擎

五、索引的应用

1、列的离散性count(distinct col):count(col)

离散型越高选择性就月好

2、最左匹配原则

对索引关键字进行计算(对比),一定是从左往右一次进行,且不可跳过

3、联合索引

单列索引
节点中关键字[name]

联合索引
节点中关键字[name,phone]

单列索引是特殊的联合索引

联合索引列选择原则

  1. 经常用的列优先[最左匹配原则]
  2. 选择性(离散度)高的列优先[离散度高原则]
  3. 宽度小的列优先[最小空间原则]

4、覆盖索引

如果查询列可通过索引节点中的关键字直接返回,则该索引称之为覆盖索引。

覆盖索引可减少数据库IO,将随机IO变为顺序IO,可提高查询性能。

5、总结

上一篇下一篇

猜你喜欢

热点阅读