mongodb - 我们可以在mongodb中进行并发读写操作吗?
问题描述
我有一个关于 MongoDB 的查询。我阅读了文档,但对此没有清楚的了解,所以在这里问。我有一个集合,我需要在其上执行来自不同来源的 24/7 读写操作。那么查询是我们可以同时对同一个集合进行并发读写操作吗?如果不是,那么有什么替代方案或背后的主要原因是什么。
我有一些 python crons 同时对集合执行 R/W 操作我有一些节点端后端 API 对同一个集合执行 R/W 操作,所以它会导致任何问题吗?目前,这一切都在 MySQL 端执行,但现在根据客户要求,我需要从 MySQL 迁移到 MongoDB。所以请帮我弄清楚这个问题。
解决方案
MongoDB 使用读写锁,允许并发读者共享访问资源,例如数据库或集合。
除了用于读取的共享 (S) 锁定模式和用于写入操作的排他 (X) 锁定模式之外,意向共享 (IS) 和意向排他 (IX) 模式表示使用更细粒度锁读取或写入资源的意向. 当以特定粒度锁定时,所有更高级别都使用意图锁进行锁定。
对于大多数读写操作,WiredTiger 使用乐观并发控制。WiredTiger 仅在全局、数据库和集合级别使用意图锁。
当前默认的 mongodb 引擎是WiredTiger
这样的,如果你使用它 - 你没问题。要检查引擎,请执行此db.serverStatus().storageEngine
推荐阅读
- java - JSP:setProperty 将值设置为变量
- html - HTML 样式启动功能在 IE 中不适用
- c - 如何使用 C 中的格式字符串攻击获取全局变量的内存地址?
- vue.js - 如何在 vuejs 中检测 ctrl + z 和 ctrl + y?
- php - php 在 Mac 上接收空的 HTML 表单
- python - 如何将元组括在引号中以将其用作函数中的字符串参数?
- wordpress - 公司网站 + 客户区 + 私人页面 + 登录时切换下拉菜单
- loops - HandleBars - 每个循环 - 一次显示四个
- amazon-web-services - AWS VPC 中的服务链:IDS -> 防火墙 -> 服务器
- amazon-web-services - 如何防止开发者下载 lambda 函数?