导出时MySQL InnoDB表锁定
我有一个导出时MySQL InnoDB表锁定,mysql,innodb,Mysql,Innodb,我有一个InnoDBMySQL数据库。当我导出SQLdump时,锁定是如何发生的?整个数据库是否在导出期间锁定?还是只是桌子?还是仅仅是一行?导出如何与InnoDB一起工作?您可以控制锁定的内容 为了安全起见,您可以像这样锁定所有表: mysqldump --lock-all-tables 文档:锁定所有数据库中的所有表。这是通过在整个转储期间获取全局读取锁来实现的。此选项自动关闭--single transaction和--lock表 或者,如果您确定不打算更改表: mysqldump --
InnoDB
MySQL数据库。当我导出SQL
dump时,锁定是如何发生的?整个数据库是否在导出期间锁定?还是只是桌子?还是仅仅是一行?导出如何与InnoDB一起工作?您可以控制锁定的内容
为了安全起见,您可以像这样锁定所有表:
mysqldump --lock-all-tables
文档:锁定所有数据库中的所有表。这是通过在整个转储期间获取全局读取锁来实现的。此选项自动关闭--single transaction和--lock表
或者,如果您确定不打算更改表:
mysqldump --single-transaction
Docs:在处理--single事务转储时,为确保转储文件有效(正确的表内容和二进制日志坐标),其他连接不应使用以下语句:ALTER table、CREATE table、DROP table、RENAME table、TRUNCATE table。一致性读取不是与这些语句隔离的,因此在要转储的表上使用这些语句可能会导致mysqldump执行的SELECT检索表内容时获取不正确的内容或失败。您可以控制锁定的内容 为了安全起见,您可以像这样锁定所有表:
mysqldump --lock-all-tables
文档:锁定所有数据库中的所有表。这是通过在整个转储期间获取全局读取锁来实现的。此选项自动关闭--single transaction和--lock表
或者,如果您确定不打算更改表:
mysqldump --single-transaction
Docs:在处理--single事务转储时,为确保转储文件有效(正确的表内容和二进制日志坐标),其他连接不应使用以下语句:ALTER table、CREATE table、DROP table、RENAME table、TRUNCATE table。一致性读取不是与这些语句隔离的,因此在要转储的表上使用这些语句可能会导致mysqldump执行的SELECT检索表内容时获取不正确的内容或失败