【问题标题】:mysqldump blocks inserts on innodb database?mysqldump 阻止innodb 数据库上的插入?
【发布时间】:2012-05-18 23:54:19
【问题描述】:

在 innodb 数据库上执行默认 mysqldump 时,是否执行表锁定和挂起的“INSERTS”排队?我有事务数据库,在 100K+ 记录中,我发现可能有 2-3 打重复记录(所有字段都相同,例如时间戳,除了主键)。

我怀疑前端应用程序的用户在进行数据库备份时单击了 GUI 上的“保存”,然后又单击了几次,直到收到响应。这是我的理论。

请分享您的想法。

【问题讨论】:

    标签: mysql mysqldump


    【解决方案1】:

    我相信mysqldump 默认会锁定。由于您使用的是 innodb,因此请使用--single-transaction 来防止锁定(请参阅this question)。或者使用innodb hot backup tool之类的东西。

    【讨论】:

    • 谢谢,基思。 --single-transaction 选项是否需要更少或更多时间?
    • 它可能会慢一点,但可能不会太多。试试看!
    • 我刚刚编辑了 cron 并添加了选项。我运行了脚本。它可能花费了两倍的时间(20 秒)。 .sql 文件的 Db 大小约为 73MB。
    • 使用--single-transaction时除了备份时间变慢之外,还有其他缺点吗?使用此选项在 mysqldump 进行时执行 INSERT 会发生什么?
    • 所有数据库操作都将正常完成,但在备份过程中可能需要更长的时间。
    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多