请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

建立索引时key与index有区别吗

老师你好:建立索引时key与index有区别吗?

正在回答 回答被采纳积分+3

1回答

singwa 2017-06-21 17:25:52


    1).key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)。包括primary key, unique key, foreign key 等。
  
  可见,mysql的key是同时具有constraint和index的意义,这点和其他数据库表现的可能有区别。(至少在Oracle上建立外键,不会自动建立index),因此创建key也有如下几种方式:
  (1)在字段级以key方式建立, 如 create table t (id int not null primary key);
  (2)在表级以constraint方式建立,如create table t(id int, CONSTRAINT pk_t_id PRIMARY key (id));
  (3)在表级以key方式建立,如create table t(id int, primary key (id));
  其它key创建类似,但不管那种方式,既建立了constraint,又建立了index,只不过index使用的就是这个constraint或key。

    2).index是数据库的物理结构,它只是辅助查询的,它创建时会在另外的表空间(mysql中的innodb表空间)以一个类似目录的结构存储。索引要分类的话,分为前缀索引、全文本索引等;
  因此,索引只是索引,它不会去约束索引的字段的行为(那是key要做的事情)。
  如,create table t(id int, index inx_tx_id  (id));


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信