MongoDB批量插入数据时,执行查询无法查询到数据,插入完成后才查询到数据
认证高级PHP讲师
这是mongodb一直被诟病嫌弃的地方——读写锁,而且在2.2版本以前是全局的,即写操作时,整个数据库都是限制读写的。后来慢慢支持了,collection级别的锁,但你说的这种情况如果是读写同一个collection时,依然没有办法同时进行,具体有没有某个引擎支持document级别的锁我就不知道了。所以很抱歉,我无法解决你所遇到的问题,觉得只能从业务上避免这种情况,或者分库,做读写分离。
听你的表述,你应该是用的2.8以前的版本。因为从2.8以后就支持document level锁定了。3.0以后mongodb退出了WiredTiger引擎。不同的用户可以随时编辑跟查询同一个collection里面的不同的document.至于批量插入查询,除非你要高强度并发。否及基本上mongodb的读写速度是完全没有问题的。他就是为了这个而存在的。
这是mongodb一直被诟病嫌弃的地方——读写锁,而且在2.2版本以前是全局的,即写操作时,整个数据库都是限制读写的。后来慢慢支持了,collection级别的锁,但你说的这种情况如果是读写同一个collection时,依然没有办法同时进行,具体有没有某个引擎支持document级别的锁我就不知道了。所以很抱歉,我无法解决你所遇到的问题,觉得只能从业务上避免这种情况,或者分库,做读写分离。
听你的表述,你应该是用的2.8以前的版本。因为从2.8以后就支持document level锁定了。3.0以后mongodb退出了WiredTiger引擎。不同的用户可以随时编辑跟查询同一个collection里面的不同的document.至于批量插入查询,除非你要高强度并发。否及基本上mongodb的读写速度是完全没有问题的。他就是为了这个而存在的。