2 u013914875 u013914875 于 2014.08.22 17:45 提问

Mysql中index与key的区别

-------------------------+
| user | CREATE TABLE user (
id int(11) NOT NULL,
name varchar(50) default NULL,
companyId int(11) default NULL,
PRIMARY KEY (id),
KEY company_user_id (companyId)
) ENGINE=InnoDB DEFAULT CHARSET=gbk |

上面的建表语句中,KEY company_user_id (companyId),这句话起什么作用?
和 index company_user_id (companyId)有什么区别?

4个回答

gzbithorse
gzbithorse   2015.09.24 12:33

我的理解是这样的,不知道对不对:
一个是数据库逻辑层(KEY)的东西,一个是实现层(INDEX)的。
KEY有两个核心属性: 1 是 键约束 2 是索引
KEY的索引是通过INDEX来实现的。

实际使用中如果没有涉及字段间的约束,二者的作用是一样的。

solomon5926
solomon5926   2014.10.05 12:47

key是主键,index是索引,两者都要求字段保持唯一性。key用于完整性约束,一张表的外键是另外一张表的主键。index可以提高改字段的查询效率。

yicp123
yicp123   2016.05.25 13:40

show create table 命令可以看到表的key、index信息
如果只是key的话,就是普通索引。
mysql的key和index多少有点令人迷惑,单独的key和其它关键词结合的key(primary key)实际表示的意义是不同,这实际上考察对数据库体系结构的了解的。
key 是数据库的物理结构,处于模型层面的,它包含两层意义和作用,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)。
index是数据库的物理结构,处于实现层面的,它只是辅助查询的。
······
参考自:MySQL key与index的区别 http://www.data.5helpyou.com/article392.html

gzbithorse
gzbithorse   2015.09.24 12:29

这个回答感觉完全没有营养。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!