1
crclz 2020 年 8 月 23 日 1. 如果没有性能问题,就只用数据库
2. 如果有性能问题,则用多台机器+中间件来把数据库整改成分布式 3. 如果性能进一步达到瓶颈,这时候才需要使用缓存( redis )。就涉及到一个问题:缓存的更新策略 同理,上文中的数据库也可以替换为 mongo,就省去了找中间件的问题。如果按照关系型的设计数据库表的方式(范式)来设计 mongo 的表,关系型+中间件的性能是不比 mongo 副本集差的。 |
3
crclz 2020 年 8 月 23 日 @594duck 其实我的意思是,范式会(轻微)拖累 mongo 的性能。某些情况,如果按照范式,就会设计出 2 张或 3 张表,但 mongo 可嵌套对象、数组,就只会有 1 张表。这种设计会违反第一范式,但是这种设计如果设计的好的话,就可以提升性能(或者说就可以发挥面向聚合的分布式数据库的优势)。
但是这种聚合的设计也有学问在里面。如果没有设计能力,还是应该乖乖按照范式来,和微服务没啥关系。 |
4
yngzij 2020 年 8 月 23 日 via iPhone
用 Mongo 的 watch ?
|
5
anakinsky 2020 年 8 月 24 日
MongoShake
|