MySQL读写分离及主从时延
面试题
- 如何实现mysql的读写分离?
- MySQL主从复制原理的是啥?
- 如何解决mysql主从同步的延时问题?
前言
这个,高并发这个阶段,那肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗?
如何实现mysql的读写分离?
其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去。一般情况下,主库可以挂4-5个从库

MySQL主从复制原理的是啥?
MySQL里有一个概念,叫binlog日志,就是每个增删改类的操作,会改变数据的操作,除了更新数据以外,对这个增删改操作还会写入一个日志文件,记录这个操作的日志。
主库将变更写binlog日志,然后从库连接到主库之后,从库有一个IO线程,将主库的binlog日志拷贝到自己本地,写入一个中继日志中。接着从库中有一个SQL线程会从中继日志读取binlog,然后执行binlog日志中的内容,也就是在自己本地再次执行一遍SQL,这样就可以保证自己跟主库的数据是一样的。
这里有一个非常重要的一点,就是从库同步主库数据的过程是串行化的,也就是说主库上并行的操作,在从库上会串行执行。所以这就是一个非常重要的点了,由于从库从主库拷贝日志以及串行执行SQL的特点,在高并发场景下,从库的数据一定会比主库慢一些

本文介绍了MySQL读写分离的实现,通过主从复制确保数据一致性。详细讲解了主从复制原理,包括binlog、IO线程和SQL线程的角色。讨论了主从延时问题及其原因,如串行化执行和并行复制策略。同时,提出了应对主从延迟的实践策略,如分库、代码优化和使用数据库中间件。
最低0.47元/天 解锁文章
1108

被折叠的 条评论
为什么被折叠?



