主从复制与读写分离
<ul>
<li><a href="https://www.topgoer.cn/docs/data-structures-questions/data-structures-questions-1d94t10l32571">https://www.topgoer.cn/docs/data-structures-questions/data-structures-questions-1d94t10l32571</a></li>
</ul>
<h2>主从复制</h2>
<p>主从复制主要涉及三个线程:binlog 线程、I/O 线程和 SQL 线程。</p>
<ul>
<li>binlog 线程
<ul>
<li>将主服务器上的数据更改写入二进制文件(binlog)中。</li>
</ul></li>
<li>I/O 线程
<ul>
<li>从主服务器上读取二进制日志文件,并写入从服务器的中继日志中。</li>
</ul></li>
<li>SQL 线程
<ul>
<li>读取中继日志并重放其中的 SQL 语句。</li>
</ul></li>
</ul>
<h2>读写分离</h2>
<ul>
<li>主服务器用来处理写操作以及实时性要求比较高的读操作,从服务器用来处理读操作。</li>
<li>读写分离常用代理方式来实现,代理服务器接收应用层传来的读写请求,然后决定转发到哪个服务器。</li>
</ul>
<h2>MySQL 读写分离能提高性能的原因在于</h2>
<ul>
<li>主从服务器负责各自的读和写,极大程度缓解了锁的争用;</li>
<li>从服务器可以配置 MyISAM 引擎,提升查询性能以及节约系统开销;</li>
<li>增加冗余,提高可用性。</li>
</ul>