公众号后台回复“java学习路线”,即可免费获得java框架哦!

前言:本公众号将推出系列性的知识分享,以专题或者模块的方式,向读者分享学习体会和心得。所以想要学习的朋友可以点击关注,一起学习。
上一篇文章重点介绍了更新流程和在更新流程中的日志,同学们要重点掌握,今天的话主要介绍的是MySQL的索引。

索引的建立
建立索引:
alter table table_name add index index_name(column_name)
解释:alter 为建立所以的关键字 table 为表的关键字 table_name 为表名 add 为添加的关键字 index为索引的关键字 index_name 为索引的名称 column_name为列名
例子:ALTER TABLE student ADD INDEX index_clsId(clsId)
为student表的clsId建立一个索引值
删除索引:
alter table table_name drop index index_name
解释:alter 为建立所以的关键字 table 为表的关键字 table_name 为表名 drop为删除索引的关键字 index为索引的关键字 index_name 为索引名称
例子:ALTER TABLE student DROP INDEX index_clsId
删除student表的index_cls 索引

InnoDB的索引模型
在数据库的底层存储中常用的三种数据结构有:哈希表,有序数组,和树(二叉树或n叉树)。
InnoDB使用的是B+树模型,索引在InnoDB中国的数据都是存放在B+树当中的。
举例:在一个表中有ID主键和一个字段K,且k有索引。

从图中不难看出,根据叶子节点的内容,索引类型分为主键索引和非主键索引。主键索引的叶子节点存的是整行数据。在InnoDB里,主键索引也被称为聚簇索引(clustered index)。非主键索引的叶子节点内容是主键的值。在InnoDB里,非主键索引也被称为二级索引(secondary index)。
如果语句是select * from T where ID=500,即主键查询方式,则只需要搜索ID这棵B+树;
如果语句是select * from T where k=5,即普通索引查询方式,则需要先搜索k索引树,得到ID的值为500,再到ID索引树搜索一次。这个过程称为回表。
好了,今天的内容也是比较简单,大家要明白一点即可,那就是文章介绍的是InnoDB的索引模型,切不可弄混。
喜欢的同学可以点击“在看”,并且关注ITwords微信公众号,第一时间获取更新内容。您的转发和点赞将是我原创的动力,感谢您的支持。
扫描二维码
获取更多精彩
ITwords

尾言:下一篇覆盖索引和最左前缀原则介绍
往期回顾:





