【问题标题】:mongo write lock behaviormongodb写锁行为
【发布时间】:2013-09-04 13:04:53
【问题描述】:

我有一个关于 mongo 锁的问题。基本上我必须对表执行一些写操作(插入/删除/更新)。当我阅读此链接时Locking in Mongodb。它说“锁是‘写者贪婪的’,当写锁存在时,单个写操作独占锁,其他读或写操作不能共享锁。

我的问题是——锁是基于内存块的,或者我们在整个数据库上有一个锁。我的想法是同时运行 2 个脚本扫描 2 个 mongodb 内存块(计划一次查询扫描 200 万个文档)并并行执行写入操作,从而提高性能并节省时间。

我在网上搜索过,但没有找到满意的东西。

任何帮助将不胜感激

【问题讨论】:

    标签: mongodb locking pymongo


    【解决方案1】:

    写锁与内存无关,MongoDB不是内存数据库,操作系统只是将mongod进程的工作集缓存到RAM中。 MongoDB 在其程序中没有内存挂钩。

    写锁也在数据库级别,因此您的计划不可行。

    【讨论】:

    • 作为对 Sammaye 观点的补充,如果您的应用程序的写入量非常大(例如,存储日志),那么拥有多个数据库可能会很有用。然后你可以在每个数据库上同时运行一个脚本。
    • @llovett 好点,虽然我想强调只有在最高的写入情况下,我看到多个数据库有帮助,由于它的性质,锁阻碍 MongoDB 需要大量的写入。
    猜你喜欢
    • 2014-12-25
    • 2014-11-10
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多