文章目录
1、原题
1.1、英文原题
1.2、答案
B、C
2、题目解析
2.1、题干解析
本题考察的是MySQL复制的并行模式。
2.2、选项解析
从题干可以看到有4个应用者线程,有两个在运行中。
3、知识点
3.1、知识点1:并行复制
3.1.1、slave_parallel_type
MySQL复制支持多线程复制,一旦启动多线程复制(slave_parallel_workers大于0),slave_parallel_type变量用于指定多线程复制的策略,有如下两种策略:
- DATABASE:在数据库层面并行,也就是有几个数据库最多有几个线程并行,单个数据库内部无法并行。
- LOGICAL_CLOCK:在事务级别并行,也就是在数据库内部也可以并行,所以效率比DATABASE并行更高。当设置slave_preserve_commit_order=1时,就只能使用LOGICAL_CLOCK模式。
3.1.2、slave_parallel_workers
变量slave_parallel_workers用于设置并行执行复制事务的应用者线程数量。把这个变量设置为大于0的数字,就会启动多线程复制。
4、总结
- MySQL的复制可以通过设置slave_parallel_workers变量的值大于0从而实现多线程并行复制,slave_parallel_workers变量的值就是应用者线程的数量。
- MySQL复制有DATABASE和LOGICAL_CLOCK两种模式,其中DATABASE模式是在数据库层面并行(单个数据库内部仍然串行),而LOGICAL_CLOCK模式则是在事务层面并行,所以一般效率更高。