我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql对于unique_checks的支持

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql对于unique_checks的支持

这篇文章主要介绍“mysql对于unique_checks的支持”,在日常操作中,相信很多人在mysql对于unique_checks的支持问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql对于unique_checks的支持”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!



unique_checks   这个参数是用于检查主键和唯一键是否重复的参数.
tokudb与innodb对于这个参数有很大区别.
开启(unique_checks=1 or on)时没什么区别..都是要需要检查唯一性.
关闭(unique_checks=0 or off)时,就有区别了
在unique_checks关闭状态,不管什么引擎,有两个情况下,性能提升还是客观的:
1.只有primary key且是auto-increment的和secondary index ,没有unique index,这个时候关闭unique_checks,批量插入的性能还是有很乐观的提升的.
2.primary key有大量随机数据(就是离散值很大),或者unique index有大量随机数据(离散值很大),批量插入的性能也会有很高的提升;


接下来说说innodb与tokudb的区别:
innodb:off只是关闭secondary indexs.其实这句话有点多余.只要不是unique index,检不检查其实效果差别不大.官方宣称,关闭unique_checks可以提升批量insert性能.secondary indexs.仔细研究了下.在批量插入时,不管secondary index如何进行组织或更新(插入数据后,索引也会更新或者可能重新组织),primary key和unique index都需要更新或重新组织.所以在innodb下,这个参数的性能提升意义不是很大.




tokudb:off状态就不一样了.在off状态下,只检查primary key是否重复.目前tokudb的索引还在研究阶段,所以就只参考官方手册的说法:在off状态下,将提升批量insert的效率(前提是不仅有primary,还得有其他索引,不然,效果就不明显了).
在关闭unique_checks状态下,除了primary不能重复外,unique index和其他索引是可以重复的.这算是超级bug了.都允许重复了,还unique?而且在primary相同,unique不一样的两条insert,后面一条会覆盖前面一条的数据,这个就太坑了...如下例:
mysql> show create table t3\G
*************************** 1. row ***************************
       Table: t3
Create Table: CREATE TABLE `t3` (
  `id` int(11) NOT NULL,
  `id2` int(11) DEFAULT NULL,
  `d3` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `d3` (`d3`),
  KEY `sec_key` (`id2`)
) ENGINE=TokuDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)


mysql> 
mysql> 
mysql> select * from t3;
+----+------+------+
| id | id2  | d3   |
+----+------+------+
|  1 | NULL | NULL |
|  2 |    2 | NULL |
|  3 |    3 |    3 |
|  4 |    4 |    3 |
+----+------+------+
4 rows in set (0.00 sec)


mysql> 
mysql> 
mysql> insert into t3 values (2,1,1); 
Query OK, 1 row affected (0.14 sec)


mysql> select * from t3;
+----+------+------+
| id | id2  | d3   |
+----+------+------+
|  1 | NULL | NULL |
|  2 |    1 |    1 |
|  3 |    3 |    3 |
|  4 |    4 |    3 |
+----+------+------+
4 rows in set (0.00 sec)


有此可知,关闭unique_checks也是存在隐患的.如果大量primary重复,前面的数据都会被覆盖(只保留最后一个重复的数据),且secondary index很容易会遭到破坏,这个时候可能就需要重建索引,由此的代价,反而性能损失更大.











到此,关于“mysql对于unique_checks的支持”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql对于unique_checks的支持

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JDK1.7与JDK1.8对于异常的支持

本篇内容主要讲解“JDK1.7与JDK1.8对于异常的支持”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JDK1.7与JDK1.8对于异常的支持”吧!一、JDK1.7的支持: 异常丢失 Thr
2023-06-02

浅谈linux kernel对于浮点运算的支持

目前大多数CPU都支持浮点运算单元FPU,FPU作为一个单独的协处理器放置在处理器核外,但是对于嵌入式处理器,浮点运算本来就少用,有些嵌入式处理器就会去掉浮点协处理器。 X86处理器一般都是有FPU的。而ARM PPC MIPS处理
2022-06-04

ORM框架对MySQL的JSON字段支持

ORM(Object-Relational Mapping,对象关系映射)框架是一种在关系型数据库和对象式编程之间进行数据转换的技术。许多现代ORM框架,如Django ORM、SQLAlchemy、Hibernate等,都支持MySQL的
ORM框架对MySQL的JSON字段支持
2024-10-05

python对xpath的支持

介绍python的Xpath的python开元项目:1.libxml2-python-2.6.4.tar.gz 安装:下载对应python版本的软件包à解压àpython setup.py install 例一:import libxml2
2023-01-31

ORM框架对MySQL的空间索引支持

ORM(Object-Relational Mapping,对象关系映射)框架是一种在面向对象编程语言中实现数据库操作的方法。它允许开发者使用面向对象的方式来操作数据库,而不是直接编写SQL语句。ORM框架通常提供了对数据库的各种高级功能的
ORM框架对MySQL的空间索引支持
2024-10-05

Galera集群对MySQL跨地域部署的支持

Galera集群通过其独特的多主同步复制机制,为MySQL跨地域部署提供了强有力的支持。它允许在多个地理位置部署数据库节点,并保持数据的一致性和高可用性。以下是关于Galera集群对MySQL跨地域部署的支持的详细信息:Galera集群对
Galera集群对MySQL跨地域部署的支持
2024-09-04

探究MySQL红黑树对大数据的支持

MySQL数据库索引中并没有直接使用红黑树,实际上,MySQL主要使用B+树作为其索引的数据结构,特别是在InnoDB存储引擎中。然而,了解红黑树及其特性对于深入理解数据库索引的工作原理仍然非常有帮助。红黑树的基本特性红黑树是一种自平衡
探究MySQL红黑树对大数据的支持
2024-10-07

bitShark对Android版本的支持

bitShark对Android版本的支持
2023-06-04

Couchbase对于实时数据处理的支持程度如何

Couchbase对实时数据处理的支持程度非常好。它具有高性能和可扩展性,能够处理大规模的实时数据。Couchbase具有内置的数据复制和自动故障转移功能,确保数据的高可用性和持久性。此外,Couchbase还提供了全面的查询和分析功能,使
Couchbase对于实时数据处理的支持程度如何
2024-04-09

MySQL的主要支持者

让我们看看MySQL的主要支持者是谁 -Oracle公司和/或其附属公司拥有MySQL服务器和MySQL手册的所有版权。有许多个人、组织、学生和其他人为 MySQL 的开发、维护和改进提供了帮助。许多公司都参与了 MySQL 服务器的开发。
2023-10-22

编程热搜

目录