MySQL中KEY与INDEX的区别
来源:互联网 发布:js正则表达式大全 编辑:程序博客网 时间:2024/06/05 00:29
最近在使用MySQL的key和index创建索引让人有点迷惑,搞不清楚二者之间的区别,请教了不少人 在Google上也找到不少答案,打算在这里写篇文章总结一下。
KEY
key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)。包括primary key, unique key, foreign key 等。
- primary key
有两个作用,一是约束作用(constraint),用来规范一个存储主键和唯一性,但同时也在此key上建立了一个index; - unique key 也有两个作用,一是约束作用(constraint),规范数据的唯一性,但同时也在这个key上建立了一个index;
- foreign key也有两个作用,一是约束作用(constraint),规范数据的引用完整性,但同时也在这个key上建立了一个index;
MySQL中的key是同时具有constraint和index的意义。
MySQL requires every Key also be indexed, that's an implementation detail specific to MySQL to improve performance.
INDEX
index是数据库的物理结构,它只是辅助查询的,它创建时会在另外的表空间(mysql中的innodb表空间)以一个类似目录的结构存储。索引要分类的话,分为前缀索引、全文本索引等;因此,索引只是索引,它不会去约束索引的字段的行为。
例如:create table t(id int, index inx_tx_id (id));
总结
我们说索引分类,分为主键索引、唯一索引、普通索引(这才是纯粹的index)等,也是基于是不是把index看作了key。比如 create table t(id int, unique index inx_tx_id (id)); 这里的index相当于key的效果。
参考链接:http://stackoverflow.com/questions/1401572/what-are-differences-between-index-v-s-key-in-mysql
1 0
- MySQL中Index与Key的区别
- MySQL中Index与Key的区别
- Mysql中Key与Index的区别
- MySQL中Index与Key的区别
- MySQL中KEY与INDEX的区别
- Mysql中index与key的区别
- MySQL中KEY与INDEX的区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- mysql中key 、primary key 、unique key 与index区别
- 网络爬虫介绍(待完善)
- 不读完你不会成功
- java 反编译
- 【cocos2dx】 图片格式的区别 png jpg pvr
- ubuntu 14.04 no valid active connections found
- MySQL中KEY与INDEX的区别
- Vijos 1035 贪婪的送礼者
- Chrome DevTools的使用
- redis练习手册<一>redis的介绍和安装
- springmvc找不到静态资源文件等
- jdk动态代理实现原理
- learn python the hard way(笨办法学python) 练习10
- 将一个文件伪装在另一个文件下
- android学习笔记——BroadcastReceiver实现强制下线