通常在数据库中,我们遵循着二八原则
,也就是增加、修改、删除
占据数据库操作中的20%,而数据库的查询
则占据了数据库操作的80%。所以基于此现象,我们通常会对数据库进行读写分离。也就是将数据库的功能进行分离,主数据库用于写操作
,从数据库用于读操作
,一般来说,从数据库我们会准备更多从数据库以分散数据库的压力。下面描述了数据库的主从复制
的过程:
主服务器上的任何修改都会通过自己的I/O线程保存到二级制日志文件Binary Log
中,从服务器上也会启动一个I/O线程,通过配置好的用户名和密码,连接到主服务器上面请求读取二进制日志,然后将读取到的二进制日志写到本地的一个Replay Log(中继日志)
里面。
从服务器上面同时开启一个SQL 线程定时检查Realy Log
,如果发现有更新,则立即将更新的内容在本机的数据库上面执行一遍。
每个从服务器都会收到主服务器二进制日志的全部内容的副本。