Ver código fonte

全局锁和表锁

fengchun_yuan 2 anos atrás
pai
commit
3b4d47e205
1 arquivos alterados com 27 adições e 0 exclusões
  1. 27 0
      mysql/mysql实战45讲.md

+ 27 - 0
mysql/mysql实战45讲.md

@@ -343,5 +343,32 @@ InnoDB中,聚簇索引不一定是主键,但主键一定是聚簇索引。
 
 **根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表锁和行锁三大类**
 
+### 全局锁
+
+全局锁主要用在逻辑备份过程中。
+
+逻辑备份过程中,加全局锁,可读不可写,会产生两个问题:
+
+- 如果在主库上备份,备份期间数据无法更新,业务上基本就得停摆
+- 如果在从库上备份,备份期间从库无法执行主库同步过来的binlog,会导致主从延迟
+
+那么如何解决以上问题呢?
+
+对于全部是InnoDB引擎的库,官方自带的逻辑备份工具是 mysqldump ,使用 -single-transaction 参数,导数据之前就会启动一个事务,来确保拿到一致性使徒。由于MVCC的支持,在此过程中数据是正常更新的。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+