15 MySQL 主从复制
接下来内容与 MySQL 主从复制相关的内容,包括:
- MySQL 如何保证主从同步的最终一致性,设计 binlog 同步过程和binlog 的格式
- 主备延迟,以及并行复制
- 由于主备延迟不可避免,因此由两种主备切换策略
- 主从复制同步位点的判断以及GTID 模式
- 读写分离,以及怎么处理主备延迟导致的读写分离问题
- 主库的心跳信息监测,以便在主库故障时及时进行主备切换
1. 主备的基本原理
如图 1 所示就是基本的主备切换流程
接下来内容与 MySQL 主从复制相关的内容,包括:
如图 1 所示就是基本的主备切换流程
全表扫描对 MySQL 有什么影响
取数据和发数据的流程是这样的:

MySQL 如何选择索引
选择索引是优化器的工作。而优化器选择索引的目的,是找到一个最优的执行方案,并用最小的代价去执行语句。优化器会考虑扫描行数、是否使用临时表、是否排序等因素进行综合判断。对于普通索引来说,优化器需要把回表的代价算进去。
MySQL 中怎么做问题追踪与性能优化
mysql 中有以下几种问题排查的工具:
show processlistshow engine innodb statusinformation_schema.innodb_trxshow engine innodb statusoptimizer_traceperformance_schema 和 sys 系统库接下来我们以下面的实现环境看看,如何使用这些工具排查 MySQL 的性能问题
对索引字段做函数操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索功能。
我们用下面两张表作为我们测试 SQL 用法的试验环境:
|
|
类似下面的 SQL,对索引字段做了函数操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索功能。
random 存在哪些问题
从一个单词表中随机选出三个单词。这个表的建表语句和初始数据的命令如下:
|
|
select word from words order by rand() limit 3; 这个语句的意思很直白,但执行流程却有点复杂的。