我读过关于 MongoDB 并发和数据库范围的写锁。
我有一个问题。将一个逻辑数据库存储在不同的 MongoDB 数据库中是否正常做法?
例如,我有一些集合,它们很少更新,但读取操作会非常非常频繁地执行。可以将它们存储在不同的数据库中吗?
这种做法有什么缺点?
我读过关于 MongoDB 并发和数据库范围的写锁。
我有一个问题。将一个逻辑数据库存储在不同的 MongoDB 数据库中是否正常做法?
例如,我有一些集合,它们很少更新,但读取操作会非常非常频繁地执行。可以将它们存储在不同的数据库中吗?
这种做法有什么缺点?
将事物存储在不同的数据库中总是可以的,但它不太可能对您有所帮助。即使 MongoDB 具有数据库级锁定 (2.2/2.4),它也会在检测到即将发生页面错误(缓慢的“从磁盘读取”)时采用主动让步。当它检测到这一点时,它将产生写锁,以便读取可以继续。有大量读取和并发写入并不是您想象的那么大的问题。h
确保不会经常发生缓慢的“从磁盘读取”的唯一方法是确保整个工作集适合 RAM。将“工作集”放入 MongoDB 的 RAM 是什么意思?对此有很好的解释。