mysql
mysql的主从复制依靠的是binlog文件,master 执行sql会将sql语句存储到binlog文件中。 slave读取该文件保存至slave中,然后再读取这个文件写入slave库
主从复制有三种模式
- statement 基于sql语句
- row 基于行模式
mixed 综合模式
常见问题
MySQL使用单线程重放RelayLog。
在高并发情况下进行了修改操作后,数据还没有从主库同步到从库,这时进行查询操作将会查询到到历史数据或者未保存数据.
解决方案:
设置mysql为强制走主库.
- 选择性走主库:对数据做缓存, 一旦数据在1秒内做过变更,那么久强制从主库查询
设置强制走主库时,java代码需要保证在同一个事物下, 否则sql语句只有第一条会强制走主库