我一定是错的.我正在考虑在我的项目中使用mongodb,但我读到了这个:
http://docs.mongodb.org/manual/faq/concurrency/#what-type-of-locking-does-mongodb-use
它说mongodb使用数据库级读写器锁.
MySQL InnoDB使用行级锁定.嗯,这不意味着,从理论上讲,mongodb比并发访问的MySQL慢2级吗?
Asy*_*sky 10
如果你查阅读者 - 作家锁,你会发现当你使用短语"行级别锁定"时,它是一种完全不同于动物的数据库,而不是数据库锁.
读者 - 写入器锁保护共享内存访问,因此非常短暂(大约几微秒).由于MongoDB操作在文档级别上只是原子操作,因此只要在内存中更新单个文档,这些锁定(在传统数据库中它们有时称为锁存器并用于保护索引访问).
定期"数据库锁定"通常会存在,直到正在进行的事务已提交或回滚.由于RDBMS事务可跨越多个表的多个操作,因此这些锁通常使用寿命更长,因此必须更加精细以允许其他工作发生并发.
从理论上讲,mongodb对于并发访问来说比MySQL慢2级吗?
不,它确实没有,并且取决于您的确切工作负载可能更快或更快或更慢 - 这一切都取决于您正在进行的操作类型,可用的物理资源,数据的结构,以及作为您的应用程序的需求.
将大量数据写入MongoDB中的数据库的应用程序往往主要受可用磁盘IO吞吐率的限制.只有当可用磁盘带宽超过应用程序对数据库的写入量时,您才会看到并发性成为MongoDB的一个因素.对于关系数据库,由于锁的生命周期较长,即使写入相对较少的总数据,并发也可以更早地成为一个因素.
| 归档时间: |
|
| 查看次数: |
4686 次 |
| 最近记录: |