MySQL下常用索引与惟一索引的效率比较
这些都是第一次执行。经过几次画法,平均值被取下。效率几乎是一样的。如果一个索引和一个公共索引同时在一个列上构建,MySQL将自动选择一个惟一索引。
谷歌曾经:
结构使用的唯一索引和普通索引是B树,和执行的时间复杂度是O(log n)。
添加概念:
1、普通指标
普通的指数的唯一任务(由关键字或索引中定义的指标)是加快对数据的访问。因此,该指数只应为数据列的查询条件中最常出现的创建(wherecolumn =)或排序条件(orderbycolumn)。只要可能的话,你应该选择一个有序的、紧凑的数据列(如一个整数类型的数据列)来创建一个索引。
2、唯一索引
普通索引允许索引数据列包含重复的值。例如,由于人们可能拥有相同的名称,同一个雇员的个人数据表中可能会出现相同的两次或更多的名称。
如果能确定一个数据列将只包含不同的值,该指数独特的应定义为唯一索引创建此数据列的索引时,这样做的好处:一是简化了指标管理MySQL,这个指数也因此变得更加效率;二是新记录MySQL的表,自动检查这个字段的值是一个新的纪录在这场创纪录的出现;如果MySQL,插入新的记录将被拒绝。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多情况下,创建一个唯一索引的目的不是为了提高访问速度,但为了避免数据的重复。
注:
最后,我找到了一个同事说执行效率不同的原因。他在通用索引上创建了前缀索引,只有前16个字节和惟一索引所使用的完整字节。