众所周知,索引能够加快查询的速度,类似看书的时候先查目录之后再翻到具体那一页。
一、聚集索引和非聚集索引
1。聚集索引
聚集索引一张表只能存在一个。
聚集索引是物理上连续的(如果数据结构是btree的话,则数据直接存在叶子节点上),所以查询一个范围的数据会相当快。
2. 非聚集索引
非聚集索引一张表可以存在抖个。
非聚集索引在逻辑上是连续的(如果数据结构是btree的话,则叶子节点上存的的数据的位置信息),所以
mysql中的innodb引擎支持聚集索引,在mysql中主键索引就是聚集索引。
Mysql中索引分为:普通索引,主键索引,唯一索引,联合索引。mysql中创建索引的时候默认使用btree数据结构。 innodb 不支持hash的数据结构
1.主键索引
在mysql中主键索引默认是聚集索引。主键索引不可重复。
primary (key)
alter table test add primary key (id)
2.普通索引
alter table test add index index_test (name)
如果是字符类型,则支持指定索引字段长度
alter table test add index index_test (name(10))
3.唯一索引
唯一索引的字段值不能重复,可以为空。
alter table test add index index_test ()
4.联合索引
联合索引就是多个字段组成的普通索引或者唯一索引。
alter table test add index index_test (id,name) using btree
相关sql语句
查询表的索引
show index from test