mysql集群与主从复制
mysql的读写分离是通过主从复制来实现的,那么为什么要读写分离呢? 随着用户量的增多,数据库的性能往往会成为一个系统的瓶颈所在,一般系统的“读”压力远远大于“写”压力,所以可以通过数据库的读写分离来提高系统的性能。让主数据库负责“写”操作,从数据库负责“读”操作,从数据库可以部署多个来提高“读”的速度。所以,读写分离可以分担mysql的压力,提供系统的性能和吞吐量 那么主从复制的原理是什么? 1)首先,mysql主数据库在事务提交时会把所有对数据的操作都写入二进制文件binlog中 2)从数据库读取到binlog中的记录,根据这个记录重做数据库操作,通过复制达到数据一致 但是主数据库和从数据库间总会有延迟,如果刚刚保存的数据你就要马上能够读取到,这个时候可以让这次查询去主数据库中执行 接下来实现一个主从复制的小案例 由于本项目的这些服务都是docker的镜像,所以mysql我也想通过docker来安装,这里使用的是5.7版本 docker pull mysql:5.7 首先要创建外部挂载点来挂载容器中的文件 sudo mkdir -p /usr/local/mysql/data sudo mkdir -p /usr/local/mysql/log sudo mkdir -p /usr/local/mysql/conf sudo chmod 775 -R /usr/local