数据库的主从复制,读写分离

主从复制理解:

主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;

原理:

  1. 数据库有个bin-log二进制文件,记录了所有的sql语句。
  2. 只需要把主数据库的bin-log文件中的sql语句复制。
  3. 让其从数据的relay-log重做日志文件中在执行一次这些sql语句即可。

作用:

  1. 做数据的热备份,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
  2. 架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问频率,提高单机的I/O性能
  3. 主从复制是读写分离的基础,使数据库能制成更大 的并发。例如子报表中,由于部署报表的sql语句十分慢,导致锁表,影响前台的服务。如果前台服务使用master,报表使用slave,那么报表sql将不会造成前台所,保证了前台的访问速度。

主从复制的几种方式:

  1. 同步复制:所谓的同步复制,意思是master的变化,必须等待slave-1,slave-2,...,slave-n完成后才能返回。
  2. 异步复制:如同AJAX请求一样。master只需要完成自己的数据库操作即可。至于slaves是否收到二进制日志,是否完成操作,不用关心。MYSQL的默认设置。
  3. 半同步复制:master只保证slaves中的一个操作成功,就返回,其他slave不管。

关于读写分离:

在完成主从复制时,由于slave是需要同步master的。所以对于insert/delete/update这些更新数据库的操作,应该在master中完成。而select的查询操作,则落下到slave中。

你可能感兴趣的:(知识点整理,数据库,database,sql)