MySQL学习--MySQL创建索引的若干总结

2024-10-13 09:08:12

1、首先我们先看一下MySQL如何帮助我们自动创建索引,使用下述SQL语句创建一个表(注意这个语句中声明了主键列):create table test_index ( id int not null auto_increment, name varchar(100), primary key (id)) engine = innodb charset = utf8;我们通过 primary key 指定了该表的主键,MySQL 也会基于该主键自动为我们创建聚簇索引!表创建完毕后,可以通过 show index from 表名称 查看该表关联的所有索引信息。

MySQL学习--MySQL创建索引的若干总结

3、继续,我们这次建表时,依然不指定主键,但我们指定一个 unique 列 (唯一约众龊受礻束):create table test_ind髫潋啜缅ex2 (id int not null,name varchar(100),unique (name)) engine = innodb charset = utf8;从运行结果上看,MySQL还是会基于具有唯一约束的列 name 为我们创建索引(其本质也是为了当我们插入数据时,能最快判断是否有唯一性冲突),因为该列不是非空列,因此不能被选定为主键列,因此该索引是一个辅助索引而不是聚簇索引!

MySQL学习--MySQL创建索引的若干总结

5、总结:MySQL首先会为选定的主键列自动创建聚簇索引,对于具有唯一约束的列,也会自动为其创建辅助索引。

猜你喜欢