码迷,mamicode.com
首页 > 其他好文 > 详细

主键、自增主键、主键索引、唯一索引概念区别与性能区别

时间:2015-03-03 22:18:07      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:主键索引唯一索引概念区别

概念区别:

主键:指字段唯一不为空值的列。

主键索引:指的就是主键,主键没有明确的概念定义,主键既是约束,也是索引,主键是索引的一种,是唯一索引的特殊类型。创建主键的时候,数据库默认会为主键创建一个唯一索引。

自增主键:字段类型为数字、自增、并且是主键。

唯一索引:索引列的值必须唯一,但允许有空值。主键是唯一索引,这样说没错。但反火来说唯一索引也是主键就错误了,因为唯一索引允许空值,主键不允许有空值,所以不能说唯一索引也是主键。

性能区别:

通过测试,发现主键、自增主键、唯一索引的查询效率不一样,当然这个差距很小,总结为:

查询:唯一索引 > 自增主键 > 主键(主键索引)

插入:主键 > 自增主键 > 唯一索引

测试场景:

创建3个表,名字段相同:id,name,money,tradDate
各插入100W条相同的数据

table A:id为主键,table B:id自增并且是主键,tableC:id创建唯一索引

查询:

性能:唯一索引 >自增主键> 主键(主键索引)

A表(主键):0.06s

B表(自增主键):0.01s,

C表(唯一索引):0.00s

插入:

10W条数据,批量插入,性能:主键 >自增主键 > 唯一索引 

A表(主键):38.408s

B表(自增主键):38.708s,

C表(唯一索引):39.018s


写了这么多,忽然感觉做这个测试没有什么意义,有木有?


主键、自增主键、主键索引、唯一索引概念区别与性能区别

标签:主键索引唯一索引概念区别

原文地址:http://blog.csdn.net/shmnh/article/details/44041881

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!