【发布时间】:2012-05-18 23:54:19
【问题描述】:
在 innodb 数据库上执行默认 mysqldump 时,是否执行表锁定和挂起的“INSERTS”排队?我有事务数据库,在 100K+ 记录中,我发现可能有 2-3 打重复记录(所有字段都相同,例如时间戳,除了主键)。
我怀疑前端应用程序的用户在进行数据库备份时单击了 GUI 上的“保存”,然后又单击了几次,直到收到响应。这是我的理论。
请分享您的想法。
【问题讨论】:
在 innodb 数据库上执行默认 mysqldump 时,是否执行表锁定和挂起的“INSERTS”排队?我有事务数据库,在 100K+ 记录中,我发现可能有 2-3 打重复记录(所有字段都相同,例如时间戳,除了主键)。
我怀疑前端应用程序的用户在进行数据库备份时单击了 GUI 上的“保存”,然后又单击了几次,直到收到响应。这是我的理论。
请分享您的想法。
【问题讨论】:
我相信mysqldump 默认会锁定。由于您使用的是 innodb,因此请使用--single-transaction 来防止锁定(请参阅this question)。或者使用innodb hot backup tool之类的东西。
【讨论】:
--single-transaction 选项是否需要更少或更多时间?
--single-transaction时除了备份时间变慢之外,还有其他缺点吗?使用此选项在 mysqldump 进行时执行 INSERT 会发生什么?