mysql下普通索引和唯一索引的效率对比
来源:互联网 发布:淘宝四件套好评语50字 编辑:程序博客网 时间:2024/05/16 14:06
昨天有位同事说,他的网页查询过程中发现普通索引和唯一索引的效率是有差别的,普通索引比唯一索引快
今天在我的虚拟机中布置了环境,测试抓图如下:
抓的这几个都是第一次执行的,刷了几次后,取平均值,效率大致相同,而且如果在一个列上同时建唯一索引和普通索引的话,mysql会自动选择唯一索引。
谷歌一下:
唯一索引和普通索引使用的结构都是B-tree,执行时间复杂度都是O(log n)。
补充下概念:
1、普通索引
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。
2、唯一索引
普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。
如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好处:一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。
注:
终于找到同事说执行效率不一样的原因了,他在普通索引上创建的是前缀索引,只取了前16个字节,而唯一索引使用的全字节 :)
- mysql下普通索引和唯一索引的效率对比
- mysql中普通索引和唯一索引的效率对比
- mysql 普通索引 唯一索引的创建与效率比较
- mysql 普通索引 唯一索引的创建与效率比较
- 普通表索引,分区表局部索引和分区表的全局索引分区的效率对比测试
- MySQL 普通索引、唯一索引和主索引
- MySQL 普通索引、唯一索引和主索引
- MySQL 普通索引、唯一索引和主索引
- MySQL 普通索引、唯一索引和主索引
- MySQL 普通索引、唯一索引和主索引
- mysql的普通索引,唯一索引,主索引
- MySQL普通索引、唯一索引、主索引、外键索引、复合索引、全文索引的使用
- Mysql主键索引、唯一索引、普通索引、全文索引、组合索引的区别
- mysql中唯一索引和普通索引的用途及区别
- MySQL 普通索引、唯一索引、主键索引、全文索引
- Mysql索引介绍及常见索引(主键索引、唯一索引、普通索引、全文索引、组合索引)的区别
- Mysql索引介绍及常见索引类别(主键索引、唯一索引、普通索引、全文索引、组合索引)的区别
- Mysql索引介绍及常见索引(主键索引、唯一索引、普通索引、全文索引、组合索引)的区别
- 怎样使div中的文字在div的底部显示?
- Android GridView 的使用
- COM学习笔记(一)初识COM
- 双机热备经典技术汇总
- int NetLoop(proto_t protocol)
- mysql下普通索引和唯一索引的效率对比
- XmlSerializer 对象的Xml序列化和反序列化
- Eclipse 安装 svn插件 和 egit 插件
- 国家码
- 20 个设计师需要了解的免费 Mac 软件
- C++下 遍历文件夹
- Ubuntu 通过PPA源安装 Cairo-Dock
- java @override 报错处理
- 红帽混合云建设