mysql key index区别

看似有差很少的做用,加了Key的表与创建了Index的表,均可以进行快速的数据查询。
他们之间的区别在于处于不一样的层面上。优化

Key即键值,是关系模型理论中的一部份,好比有主键(Primary Key),外键(Foreign Key)等,用于数据完整性检查与惟一性约束等。spa

而Index则处于实现层面,好比能够对表个的任意列创建索引,那么当创建索引的列处于SQL语句中的Where条件中时,就能够获得快速的数据定 位,从而快速检索。至于Unique Index,则只是属于Index中的一种而已,创建了Unique Index表示此列数据不可重复,猜测MySQL对Unique Index类型的索引能够作进一步特殊优化吧。设计

因而乎,在设计表的时候,Key只是要处于模型层面的,而当须要进行查询优化,则对相关列创建索引便可。索引

另外,在MySQL中,对于一个Primary Key的列,MySQL已经自动对其创建了Unique Index,无需重复再在上面创建索引了。it

搜索到的一段解释:io


Note that “primary” is called PRIMARY KEY not INDEX.
KEY is something on the logical level, describes your table and database design (i.e. enforces referential integrity …)
INDEX is something on the physical level, helps improve access time for table operations.
Behind every PK there is (usually) unique index created (automatically).table

相关文章
相关标签/搜索