好问题。
- 最早的时候,我们的确是认为数据库的冗余度越低越好,为此产生了很多范式。没错,就是咱们在数据库教科书上学的那种范式。那时候存储设备很贵,能省一点是一点儿。
- 后来,后来随着社会主义的进步,存储设备便宜了,不需要那么精打细算了。同时,人们发现,适当冗余可以方便一些常用的查询,而不需要每次都join。于是,人们开始在表中冗余越来越多的字段,并通过事务等方式保持各表之间相同字段的一致性。甚至让数据库承担越来越多的搜索和分析功能,为此必须加入越来越多的索引。直到,插入数据插不动了。
- 于是,人们又开始反思,是不是应该把不同的职责从数据库中拆出来,让专业的库做专业的事。人们开始意识到读写分离的意义,主库开始变得轻装上阵,后续的搜索和分析工作由专门的es, hive等服务支持。通过CDC等方案保持各数据库直接的数据一致性。
- 时代在变。
突然想起来我还有一篇公众号文章,也许对大家处理多数据库之间的数据一致性有帮助。