全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 1 篇文章 22 道配套习题

高可用架构与分布式实践

专题说明

本专题深入剖析MySQL高可用架构与分布式实践,帮助开发者掌握主从复制、分库分表、高可用切换、负载均衡、分布式事务等核心技术,构建稳定可靠的企业级数据库架构。

学习目标

  1. 理解主从复制原理与读写分离架构
  2. 掌握分库分表的策略与实施方法
  3. 理解MHA/Orchestrator高可用切换方案
  4. 掌握ProxySQL中间件的配置与使用
  5. 理解分布式事务XA协议的实现机制
  6. 了解MySQL Cluster分布式集群方案

学习内容

本专题涵盖以下核心知识点:

  • 主从复制与读写分离:复制原理、异步/半同步复制、读写分离架构
  • 分库分表策略:垂直分库、水平分库、分片键选择、中间件方案
  • 高可用方案MHA/Orchestrator:故障检测、自动切换、数据补齐
  • ProxySQL与负载均衡:读写分离规则、负载均衡策略、连接池管理
  • 分布式事务与XA协议:两阶段提交、XA事务、分布式一致性
  • MySQL Cluster:NDB架构、无共享设计、自动分片

学习建议

  1. 先理解主从复制原理,这是高可用架构的基础
  2. 重点掌握分库分表的分片键选择,直接影响数据分布
  3. 理解MHA切换流程,熟悉故障处理机制
  4. ProxySQL配置实践,掌握读写分离规则设置
  5. 分布式事务理解两阶段提交,注意性能与一致性的权衡
  6. 结合实际场景选择合适的高可用方案

📝 发现内容有误?点击此处直接编辑

📝 配套习题(22 题)

1
单选题

MySQL主从复制的主要作用是什么?

A

提高单机性能

B

实现数据备份、读写分离、负载均衡

C

减少存储空间

D

加快索引创建

2
单选题

MySQL主从复制的基本原理是什么?

A

主库直接推送数据到从库

B

从库读取主库的Binlog并重放执行

C

主库和从库共享同一数据文件

D

定期同步数据文件

3
判断题

MySQL主从复制涉及三个线程:主库的Binlog Dump线程、从库的IO线程和SQL线程。

A

B

4
单选题

实现MySQL读写分离的常用方式是什么?

A

应用程序直接连接主库和从库

B

使用中间件(如ProxySQL)自动路由读写请求

C

只使用主库

D

只使用从库

5
单选题

主从复制延迟的主要原因是什么?如何缓解?

A

主库性能太高,应降低性能

B

从库单线程执行Relay Log,大事务导致延迟,可开启并行复制

C

网络太快导致延迟

D

只能增加从库数量

6
判断题

GTID(全局事务ID)复制可以简化主从切换和故障恢复,因为每个事务都有唯一标识,无需手动指定Binlog位置。

A

B

7
单选题

什么是分库分表?

A

将一张表拆成多个小文件

B

将数据分散到多个数据库实例或多个表中,解决单库单表性能瓶颈

C

增加索引数量

D

减少表字段

8
单选题

分库分表的两种主要方式是什么?

A

水平拆分和垂直拆分

B

索引拆分和数据拆分

C

内存拆分和磁盘拆分

D

主键拆分和外键拆分

9
判断题

垂直分库是将不同的表按照业务拆分到不同的数据库实例中,例如将用户表和订单表分别放到不同的数据库。

A

B

10
单选题

分库分表后面临的主要挑战是什么?

A

数据量增加

B

跨库JOIN、分布式事务、全局唯一ID、数据迁移等复杂问题

C

索引失效

D

存储空间不足

11
填空题

分库分表分为________(按业务拆表到不同库)和________(按数据行拆分到多表),水平分片策略包括________、范围分片等,需解决________、分布式事务、全局ID等问题。

12
单选题

MHA(Master High Availability)的主要作用是什么?

A

数据备份

B

MySQL主库故障时自动切换到从库,实现高可用

C

查询优化

D

索引管理

13
判断题

MHA由Manager节点和Node节点组成,Manager负责监控和切换决策,Node运行在每个MySQL服务器上负责具体切换操作。

A

B

14
多选题

以下哪些是MySQL常用的高可用方案?

A

MHA(Master High Availability)

B

Orchestrator

C

MySQL Router + InnoDB Cluster

D

MMM(Multi-Master Manager)

E

主从手动切换

15
单选题

ProxySQL的主要作用是什么?

A

数据备份工具

B

MySQL中间件,提供读写分离、负载均衡、查询路由等功能

C

数据同步工具

D

监控工具

16
判断题

ProxySQL可以根据SQL类型或查询规则自动将写请求路由到主库、读请求路由到从库。

A

B

17
单选题

什么是分布式事务?

A

单个数据库中的事务

B

跨多个数据库或资源的事务,需要保证所有参与者的一致性

C

只涉及一张表的事务

D

自动提交的事务

18
单选题

XA协议是什么?

A

MySQL内部协议

B

X/Open组织定义的分布式事务处理标准协议,实现两阶段提交

C

网络传输协议

D

数据加密协议

19
判断题

XA两阶段提交包括Prepare阶段(所有参与者准备提交并锁定资源)和Commit/Abort阶段(根据所有参与者准备结果决定提交或回滚)。

A

B

20
单选题

MySQL Cluster(NDB Cluster)的主要特点是什么?

A

单机存储引擎

B

分布式、无共享架构的MySQL高可用解决方案,数据存储在内存中

C

只支持读操作

D

只能有一个节点

21
单选题

MySQL Cluster包含哪些类型的节点?

A

只有SQL节点

B

管理节点(MGM)、数据节点(NDB)、SQL节点(API)

C

只有数据节点

D

主节点和从节点

22
单选题

对于需要99.99%可用性、支持自动故障切换、且要求完整SQL功能的企业应用,应选择哪种MySQL高可用方案?

A

MySQL Cluster(NDB)

B

InnoDB Cluster(MySQL Router + Group Replication + MySQL Shell)

C

单机MySQL

D

手动主从切换

← 上一个专题 锁事务与并发控制

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库