一、类型分类
- 1.主键索引:建立在主键上的索引,一张表只能有一个主键索引,索引列值不能为空,通常在创建表是一起创建
- 2.唯一索引:建立在unique字段上的索引,一张表可以有多个唯一索引,索引列值允许为空,列值中出现多个空值不会发生重复冲突
- 3.普通索引:建立在普通字段上的索引,为了方便查询,normal
- 4.前缀索引:对字符类型字段的前几个字段或对二进制类型字段的前几个bytes建立的索引,不是在整个字段上建索引。前缀索引可以建立的类型为char、varchar、binary、varbinary的列上,减少索引占用的存储空间,能提升索引查询效率,mysql无法使用前缀索引做order by和group by
- 5.全文索引:是将存储于数据库中的整本书或整篇文章中的任意信息查找出来的技术, 全文索引一般是通过倒排索引实现的。fulltext
- 6.覆盖索引:查询语句的select列表中的字段都可以通过索引直接获取,而不需要回表查询数据文件中的其他行
二、存储形式分类
- 1.聚集索引:数据和索引聚集在了一起,索引结构的叶子节点保存了行数据,有且只有一个。如果存在主键,主键索引就是聚集索引,不存在主键,使用第一个唯一索引作为聚集索引,没有合适的唯一索引,innodb会生成一个rowid作为隐藏的聚集索引
- 2.二级索引:数据和索引分开存储,索引结构的叶子节点关联的是对应的主键,需要根据主键回表查才能得到整个行数据,可以存在多个

文章详细介绍了数据库索引的类型,包括主键索引、唯一索引、普通索引、前缀索引、全文索引和覆盖索引,以及它们的特点和应用场景。同时,讨论了索引的两种存储形式——聚集索引和二级索引,解释了它们的数据组织方式和查询效率差异。
11万+

被折叠的 条评论
为什么被折叠?



