美文网首页
MySQL索引原理

MySQL索引原理

作者: 无善无恶 | 来源:发表于2018-05-19 16:42 被阅读21次

    MySQL索引背后的数据结构及算法原理

    数据结构:B+树

    关于B-Tree有一系列有趣的性质,例如一个度为d的B-Tree,设其索引N个key,则其树高h的上限为logd((N+1)/2),检索一个key,其查找节点个数的渐进复杂度为O(logdN)。从这点可以看出,B-Tree是一个非常有效率的索引数据结构。

    B+树中间节点不存储数据,只存储指针。只有叶子节点存储数据,且叶子节点之间通过指针链接,可以方便连续访问。

    MyISAM引擎:非聚集索引,索引文件放在磁盘,叶节点的data域存放的是数据记录的地址。

    InnoDB引擎:聚集索引,数据文件本身就是索引文件,叶节点的data域存放的保存了完整的数据记录。第二个与MyISAM索引的不同是InnoDB的辅助索引data域存储相应记录主键的值而不是地址。

    MySQL索引详解

    mysql的设计与优化专题(6】mysql索引攻略

    理解MySQL——索引与优化

    创建索引的三种操作:

    • CREATE INDEX

    • ALERT TABLE

    • CREATE TABLE ....[UNIQUE|FULLTEXT|SPATIAL] {INDEX|KEY} index_name [USING {BTREE | HASH}] (col_name [(length)] [ASC | DESC]...)

    索引的使用场景:

    • 等值匹配

    • 范围匹配

    • 最左前缀匹配

    • 优化ORDER BY / GROUP BY等操作

    索引的类型:

    • INDEX 普通索引

    • UNIQUE 唯一索引

    • PREMARY KEY 主键索引

    相关文章

      网友评论

          本文标题:MySQL索引原理

          本文链接:https://www.haomeiwen.com/subject/urcadftx.html