开发者社区> 问答> 正文

关于MongoDB的全局锁的问题

对MongoDB有所了解的人都知道,MongoDB有一个让人头疼的全局锁(读写锁,允许并发读,而写会阻塞所有的读写),要命的是这个锁不是表级的,不是库级的,而是整个Server级别的。
在2.0版本中,MongoDB宣称有很大程度的并发性能提升,而这一提升的基础正是解决了这个全局锁的问题。竟有哪些具体提升的操作?

展开
收起
落地花开啦 2016-02-18 17:44:11 6713 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    解决方法是通过对一些可能造成长时间锁占用的操作进行锁抑制。在进行update操作时,如果发现需要更新的记录在磁盘上,那么这个锁就不会一直占用,而是等到将数据从磁盘加载到内存后再添加写锁进行update。
    而同理,对于其它一些可能耗时比较长的操作也可以采用类似的方法,通过将长时间占用的全局锁拆分成多个细粒度的小锁来使需要获取锁来进行的操作能够交错的执行,从而避免一夫当关万夫莫开的情况,主要包括下面一些操作:
    查询操作;
    批量更新操作;
    批量删除操作;
    批量insert写入操作。

    2019-07-17 18:44:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《阿里云数据库 MongoDB 专属集群版》 立即下载
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
阿里云MongoDB备份恢复功能说明和原理介绍 立即下载