《Mysql学习mysql下普通索引和唯一索引的效率对比》要点:
本文介绍了Mysql学习mysql下普通索引和唯一索引的效率对比,希望对您有用。如果有疑问,可以联系我们。
本日在我的虚拟机中布置了环境,测试抓图如下:MYSQL教程
MYSQL教程
抓的这几个都是第一次执行的,刷了几次后,取平均值,效率大致相同,并且如果在一个列上同时建唯一索引和普通索引的话,mysql会自动选择唯一索引.MYSQL教程
谷歌一下:MYSQL教程
唯一索引和普通索引使用的结构都是B-tree,执行时间复杂度都是O(log n).MYSQL教程
弥补下概念:MYSQL教程
1、普通索引MYSQL教程
MYSQL教程
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的拜访速度.因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引.只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引.MYSQL教程
2、唯一索引MYSQL教程
普通索引允许被索引的数据列包括重复的值.比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次.MYSQL教程
如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引.这么做的好处:一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录.也就是说,唯一索引可以保证数据记录的唯一性.事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高拜访速度,而只是为了避免数据出现重复.MYSQL教程
注:MYSQL教程
终于找到同事说执行效率纷歧样的原因了,他在普通索引上创建的是前缀索引,只取了前16个字节,而唯一索引使用的全字节 :) MYSQL教程
维易PHP培训学院每天发布《Mysql学习mysql下普通索引和唯一索引的效率对比》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。