mysqldump备份时加single-transaction会加锁吗
发布时间:2022-03-23 03:14:13 所属栏目:MySql教程 来源:互联网
导读:mysqldump --all-databases --master-data=2 --single-transaction --quick -R --events -uroot /tmp/full.sql 通过根踪可以看到: 8 Connect root@localhost on 8 Query /*!40100 SET @@SQL_MODE= */ 8 Query /*!40103 SET TIME_ZONE=+00:00 */ 从红色部分
mysqldump --all-databases --master-data=2 --single-transaction --quick -R --events -uroot > /tmp/full.sql 通过根踪可以看到: 8 Connect root@localhost on 8 Query /*!40100 SET @@SQL_MODE='' */ 8 Query /*!40103 SET TIME_ZONE='+00:00' */ 从红色部分可以看出,还是会加锁的,在这个过程中,别的session同样不能进行dml, 只是加锁的时间很短。 使用single-transaction时要求: 1 只对支持事务的存储引擎有效果 2 不能执行ddl操作,因为 ddl操作会改变字典表,而字典表多数是myisam的 3 事务隔离级别为 RR mysqldump备份时,加和不加single-transaction的区别: 通过打开general_log可以看到过程: 1 加single-transaction时,是通过START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */的方式来实现的。 里面同时有很多savepoint, 2 不加single-trsnsaction是通过在整个过程中锁表实现数据一致性的。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |