关于数据库读写分离
前言
公司目前的项目都是单数据库的,目前规模不是很大,单个数据库的性能也基本可以满足需求。为了应对日后用户增长出现的数据库瓶颈,上级要求了解一下数据库读写分离。以下是我了解后的归纳总结。
读写分离解决的问题
读写分离需要有一个主数据库和多个从数据库,主数据库和从数据库之间通过数据库的主从复制进行同步。主数据库负责写操作,多个从数据库负责读操作,从而实现读写分离。
读写分离适合读操作多于写操作且对数据一致性要求不高的业务,通过多个从数据库分担读操作从而提高并发性能。
读写分离并不会缓解写操作的压力,主库依旧承担所有的写操作,并且从库也要承担一样的写入压力,但从库写入操作是异步的。
主从同步延迟
写入的数据从主数据库同步到从数据库是有延迟的,所以会造成我们读到的数据是旧的数据。解决数据不一致的方法有很多,得根据业务需要选择合适的方式。下面是一些场景下的解决方案:
选择性读主库
在实际业务中,并不是所有的业务都需要保证数据的一致性,大部分业务是可以容忍短暂的数据不一致。所以当业务不能容忍数