最近在熟悉建表语句,我们熟知的索引是通过index来创建的
但在过程中我了解到其实key也有索引功能,但他们两个的区别是什么呢?
我们知道主键一定是唯一性的索引,他规范一个存储主键和唯一性,但唯一性索引并不一定就是主键
key 是数据库的逻辑+物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)。
以主键为例
primary key 有两个作用:
1,约束作用(constraint),用来规范一个存储主键和唯一性
2,同时也在此key上建立了一个index;
index是数据库的物理结构,它只是辅助查询的,它创建时会在另外的表空间(mysql中的innodb表空间)以一个类似目录的结构存储。
index的作用:
只是在数据库中以物理的形式创建查询的目录,也就是建立index,仅此而已