解析mysqldump的delay-insert选项

  • 更新时间:2022-06-28 08:58:51
  • 编辑:国文翰
给大家整理了mysql相关的编程文章,网友戌饮月根据主题投稿了本篇教程内容,涉及到mysqldump、delay-insert、选项相关内容,已被353网友关注,相关难点技巧可以阅读下方的电子资料。

参考资料

正文内容

如果用delayed-insert插入时不用锁表。
./bin/mysqldump -uroot  -proot   --lock-tables --extended-insert  --opt --quick  --master-data  test >/home/zhanghong/opdir/tmp/test.sql
--
LOCK TABLES `student` WRITE;
/*!40000 ALTER TABLE `student` DISABLE KEYS */;
INSERT INTO `student` VALUES (16,'hhah',3),(17,'22',3),(18,'ss',18);
/*!40000 ALTER TABLE `student` ENABLE KEYS */;
UNLOCK TABLES;

使用delayed-insert不会锁表
./bin/mysqldump -uroot  -proot   --lock-tables --delayed-insert --extended-insert  --opt --quick  --master-data  test >/home/zhanghong/opdir/tmp/test.sql
/*!40000 ALTER TABLE `student` DISABLE KEYS */;
INSERT  DELAYED INTO `student` VALUES (16,'hhah',3),(17,'22',3),(18,'ss',18);
/*!40000 ALTER TABLE `student` ENABLE KEYS */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

当一个线程对一个表执行DELAYED语句时,会创建出一个管理程序线程(如果原来不存在),对用于本表的所有DELAYED语句进行处理。

·线程会检查是否管理程序以前已获取了DELAYED锁定;如果没有获取,则告知管理程序线程进行此项操作。 即使其它线程对表有READ或WRITE锁定,也可以获得DELAYED锁定。但是管理程序会等待所有的ALTER TABLE锁定或FLUSH TABLE锁定,以确保表的结构是最新的。

·线程执行INSERT语句,但不是把行写入表中,而是把最终行的拷贝放入一个由管理程序线程管理的队列中。线程会提示出现语法错误,这些错误会被报告到客户端中。

·因为在插入操作之前,INSERT返回已经完成,所以客户端不能从服务器处获取重复记录的数目,也不能获取生成的行的AUTO_INCREMENT值。(如果您使用C API,则出于同样的原因,mysql_info()函数不会返回任何有意义的东西。)

·当行被插入表中时,二进制日志被管理程序线程更新。在多行插入情况下,当第一行被插入时,二进制日志被更新。

mysql相关教程

  • 关于提高MySQL分页效率

    本文分享的这段代码是大数据量时提高分页的效率的测试代码,感兴趣的小伙伴可以参考一下

    发布时间:2020-03-17

  • mysql的enum字段使用中需要注意的地方

    背景:时下都流行enum类型的使用tinyint,那enum就真没有用的价值了么?

    发布时间:2020-01-28

  • mysql数据库与textarea中的换行符知识点讲解

    下面小编就为大家带来一篇浅谈mysql数据库中的换行符与textarea中的换行符。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    发布时间:2019-11-24

  • centos7使用yum安装mysql 8.0.12步骤详解

    这篇文章主要为大家详细介绍了centos7利用yum安装mysql 8.0.12,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2020-01-16

  • mysql安装配置简单整理

    好多朋友对于mysql的配置不是很清楚,其实最新本的配置也是这样的,建议大家到s.jb51.net去下载一些服务器软件。

    发布时间:2020-07-06

  • 怎么解决mysql修改数据库默认路径无法启动问题

    这篇文章主要给大家介绍了关于mysql修改数据库默认路径无法启动问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着

    发布时间:2020-01-19

  • 《PHP和MySQL Web开发》知识点总结(二)

    前言 本文主要记录了PHP中和文件有关的操作;主要包括打开文件,写文件,读文件以及几个常用的和文件有关的函数。 打开文件 PHP中使用fopen函数打开文件,函数原型如下: resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] ) 具体使用可查询文档,此处不多废话。 要注意的问题: 1.我当初写简单页面时还没有看这本书,出现了无法打开文件的问题

    发布时间:2018-08-17

  • CentOS系统下设置mysql自动备份的方法

    备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。本文将详细介绍在CentOS系统下如何

    发布时间:2019-11-23

用户留言