mongodb全局锁

发表于: redis/memcached/mongo | 作者: | 日期: 2013/5/14 04:05
标签:

MongoDB的不足之处仍有很多,而其中让我最感到痛心的就是MongoDB的全局锁!
怎么样的全局锁呢?相对于MySQL数据库来做个对比!MySQL数据库其中的MyIsam存储引擎使用的表锁,写会锁定整个表;而锁粒度相对较小的是Innodb,采用的是行锁!这样对比起来,MyISAM优势下降很多!而MongoDB的全局锁,粒度及其大,大得不敢让人相信,它不是MyISAM的表锁,甚至还超越了库锁,它竟然是整个服务上的锁。
也就是说,MongoDB一个写操作会锁定整个server级别的其他读写操作!我自己做个一个测试,在一个大约有3000w行的collection中添加一个索引,坑爹的事情发生了!这个添加索引的操作,锁定这整个服务,我在另外一个连接上,show dbs这个命令都被阻塞着,直到添加索引的操作完成!
但是MongoDB可以高并发读!
据说MongoDB已经在研发基于collection的锁粒度,也就是关系型数据库中的表锁粒度!
[来源:http://qdjalone.blog.51cto.com/1222376/856749]
备注:
MongoDB从2.2.0开始已经有粒度为DB的锁了,虽然还不是collection锁,不过相对于锁服务,好歹已经下降了一个级别。

: https://blog.darkmi.com/2013/05/14/3237.html

本文相关评论 - 1条评论都没有呢
Post a comment now » 本文目前不可评论

No comments yet.

Sorry, the comment form is closed at this time.