【数据库】主从同步原理和分库分表

3 阅读1分钟

提问:能解释下主从同步原理吗?

回答:MYSQL主从复制的核心就是二进制日志binlog(DDL数据定义语言)语句和DML(数据操纵语)语句
1.主库在事务提交时,会把数据变更记录记录在二进制日志文件Binlog中
2.从库读取主库的二进制日志文件Binlog,写入到从库的中继日志Relay log
3.从库重做中继日志中的事件,将改变反应它自己的数据

提问:你们项目用过分库分表吗?

回答:结合自身时机项目回答
·分库分表的时机:
1.前提,项目业务数据逐渐增加,或业务发展比较迅速(单表数量1000w或20G)
2.优化已解决不了性能问题(主从读写分离,查询索引)
3.IO瓶颈(磁盘IO、网络IO)、CPU瓶颈(聚合查询、连接数太多)

·具体拆分策略:
1.水平分库,将一个库的数据拆分到多个库中,解决海量数据存储和高并发问题
2.水平分表,解决单表存储和性能问题
3.垂直分表,根据业务进行拆分,高并发下提高磁盘IO和网络连接数
4.垂直分表,冷热数据分离,多表互不影响