gpt4 book ai didi

concurrency - mysqldump并发

转载 作者:行者123 更新时间:2023-11-29 03:12:28 25 4
gpt4 key购买 nike

如果我在数据库上启动 mysqldump,然后用新数据创建一个新表,这个表会被转储吗?这里的并发行为是什么?

最佳答案

嗯,那还不确定,来自Mysql Manual :

--single-transaction

此选项发送一个 START TRANSACTION SQL 语句到服务器之前 倾销数据。它仅与 事务表,例如 InnoDB 和 BDB,因为它会转储 数据库的一致状态 BEGIN 发出时没有 阻止任何应用程序。

使用这个选项时,你应该 请记住,只有 InnoDB 表 以一致的状态倾倒。为了 例如,任何 MyISAM 或 MEMORY 表 使用此选项时可能会转储 仍然改变状态。

虽然 --single-transaction 转储是 过程中,以确保有效的转储 文件(正确的表格内容和 二进制日志坐标),没有其他 连接应使用以下内容 语句:更改表,创建表, 删除表、重命名表、截断 table 。一致的阅读不是 从这些陈述中分离出来,所以使用 他们中的一个可以倾倒在 table 上 导致执行的 SELECT mysqldump 检索表 contents 获取不正确的内容 或失败。

--single-transaction 选项和 --lock-tables 选项是相互的 独占,因为 LOCK TABLES 导致 任何未决交易 隐式 promise 。

MySQL 不支持此选项 簇表;结果不能 保证是一致的,因为 事实上 NDBCLUSTER 存储 引擎仅支持 READ_COMMITTED 事务隔离 等级。你应该总是使用 NDB 备份和恢复。

要转储大表,你应该 结合 --single-transaction 带有 --quick 的选项。

如果你想备份/移动你的实时数据库,你应该考虑MySQL replication

关于concurrency - mysqldump并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6013671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com