MySQL中什么是禁用唯一性检查?唯一性检查,唯一性约束条件,唯一性索引之间的区别是什么?
问题描述:
MySQL中,插入数据时会对数据进行唯一性检查。这种唯一性检验也会降低插入数据的速度。为了能优化插入记录的速度,可以在插入数据前禁用唯一性检查,等到插入数据完毕后在开启。。。我做了以下两次测试。在关闭了唯一性检查后为什么不能插入相同的数据????
测试1,先创建唯一性约束条件,再禁用唯一性检查(如图):
测试2,先创建唯一性索引,再禁用唯一性检查(如图):
两次测试中我都禁用了唯一性检查,为什么最后不能够插入相同的id 值呢?求大神解释一下,晚生在这谢谢了。。。。
答
mysql的唯一性检查,其实这是mysql的一个bug,在它的官网上已经发表了,测试方法就是你给的这样的。
官方说明unique_checks其实是没有效果的。原文链接为:http://bugs.mysql.com/bug.php?id=6357
所以呢,楼主就不要纠结这个属性的作用了。
答
禁用以后,最好重启一下mysql等看看是否条件已经设置成功了
答
我也测试了你的命令,的确是没有效果的。楼主求真务实的精神,值得称赞!
只能说开源技术也是有缺陷的,这也是mysql不断再更新新版本的原因。
答
表要纠结了,实用为王,过多的特性其实也就是一种负担。