1,读写分离;
什么是读写分离:就是将数据查询与数据的增删该分开,为什么要分开,比如在查询多于增删改的情况下,为了避免由于增删改影响查询的效率,而提出的解决方案,那怎么分开呢?简单的说就是读和写操作的不是同一个数据库,如下图,读数据时查询的从库,而写数据时主库。
那么问题来了,同一段业务代码增删该时操作的master主库,而读又是slave从库,那么必然就会导致数据不统一,明明已经删除了的数据,却又能被查询出来,在实际生产中是绝对不允许这样情况存在的,这里就会引入到一个主从复制的概念,来保证数据一致。
主从复制:
上面讲到了读写分离这是业务层面的东西,而主从复制是数据层面的东西,从字面上的意思首先是要多个数据库,而且这些数据库是主从(副)的关系,而且操作数据库会将主数据库的操作复制记录下来然后再在从数据库上重复执行,实现主从复制需要再不同服务器上部署数据库(mysql),让不同服务器上的数据库之间相互形成映射,当对master 主库进行了数据修改,master主库会将操作记录再一个二进制文件中,在从库上也执行同样的sql语句,就是用这样的方式来保证数据的一致的。
读写分离虽然是两个概念,但是他们却是相互相乘的