解析mysqldump的delay-insert选项

 更新时间:2013年06月22日 16:00:29   作者:  
本篇文章是对mysqldump的delay-insert选项进行了详细的分析介绍,需要的朋友参考下

如果用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多个left join连接查询用法分析

    mysql多个left join连接查询用法分析

    这篇文章主要介绍了mysql多个left join连接查询用法,结合实例形式对比分析了mysql使用left join进行连接查询相关操作技巧与注意事项,需要的朋友可以参考下
    2018-07-07
  • MySql索引和事务定义到使用全面涵盖

    MySql索引和事务定义到使用全面涵盖

    这篇文章主要介绍了MySQL数据库索引事务,索引是为了加速对表中数据行的检索而创建的一种分散的存储结;事物是属于计算机中一个很广泛的概念,一般是指要做的或所做的事情,下面我们就一起进入文章了解具体内容吧
    2022-07-07
  • MyEclipse连接Mysql数据库的方法(一)

    MyEclipse连接Mysql数据库的方法(一)

    这篇文章主要介绍了MyEclipse连接Mysql数据库的方法(一)的相关资料,非常实用,具有参考价值,需要的朋友可以参考下
    2016-05-05
  • mysql数据表的基本操作之表结构操作,字段操作实例分析

    mysql数据表的基本操作之表结构操作,字段操作实例分析

    这篇文章主要介绍了mysql数据表的基本操作之表结构操作,字段操作,结合实例形式分析了mysql表结构操作,字段操作常见增删改查实现技巧与操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 推荐几款MySQL相关工具

    推荐几款MySQL相关工具

    这篇文章主要介绍了几款MySQL相关工具的相关资料,帮助大家更好的使用和维护MySQL 数据库,感兴趣的朋友可以了解下
    2020-11-11
  • MySQL插入时间差八小时问题的解决方法

    MySQL插入时间差八小时问题的解决方法

    这篇文章主要给大家介绍了关于MySQL插入时间差八小时问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • mysql如何配置secure_file_priv

    mysql如何配置secure_file_priv

    这篇文章主要介绍了mysql如何配置secure_file_priv问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Mysql查看最大连接数和修改最大连接数的讲解

    Mysql查看最大连接数和修改最大连接数的讲解

    今天小编就为大家分享一篇关于Mysql查看最大连接数和修改最大连接数的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 关于join on和where执行顺序分析

    关于join on和where执行顺序分析

    这篇文章主要介绍了join on和where执行顺序,如果是inner join, 放on和放where产生的结果一样, 执行计划也是一样,但推荐使用on,本文对join on和where执行顺序给大家详细讲解,需要的朋友可以参考下
    2023-03-03
  • PHP连接MySql闪断自动重连的方法

    PHP连接MySql闪断自动重连的方法

    当mysql连接闪断时,之后循环的执行将会失败。这篇文章主要介绍了PHP连接MySql闪断自动重连的方法,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-08-08

最新评论