一、key与primary key区别

   CREATE TABLE logrecord (
       logRecord_id int(11) NOT NULL primary key auto_increment,
       userName varchar(100) default NULL,
       operTime datetime default NULL,
       logRecordOperation varchar(100) default NULL,
KEY logRecord_userName(userName)
   )

  建好后,再看表结构:

【MySql】2.1 mysql中的key、primary key、index区别_第1张图片

wKioL1NYzeqCn7XtAAB00eIlcOc469.jpg

可见,Key创建的是一个索引约束,primary key显然是主键约束。

Key关键字括号外是建立索引的名称,括号内是对应字段。

key的用途:主要是用来加快查询速度的。


二、KEY与INDEX区别

   KEY通常是INDEX同义词。

   MySQL 中Index 与Key 的区别:

   Key即键值,是关系模型理论中的一部份,比如有主键(Primary Key),外键(Foreign Key)等,用于数据完整性检查与唯一性约束等。而Index则处于实现层面,比如可以对表的任意列建立索引,那么当建立索引的列处于SQL语句中的Where条件中时,就可以得到快速的数据定位,从而快速检索。至于Unique Index,则只是属于Index中的一种而已,建立了Unique Index表示此列数据不可重复,猜想MySQL对Unique Index类型的索引可以做进一步特殊优化吧。
   于是乎,在设计表的时候,Key只是处于模型层面的,而当需要进行查询优化,则对相关列建立索引即可。
   另外,在MySQL中,对于一个Primary Key的列,MySQL已经自动对其建立了Unique Index,无需重复再在上面建立索引了。