当前位置:  开发笔记 > 编程语言 > 正文

是否有任何多核开发NoSQL系统?

如何解决《是否有任何多核开发NoSQL系统?》经验,为你挑选了1个好方法。

我从昨天开始玩MongoDB并且非常喜欢它.我正在尝试导入大量数据(20亿行)并对其进行索引,但它似乎没有使用我的系统所具有的8个核心,导入正常率(60000记录/秒).我只能想象在这个集合中索引两列可能需要多长时间.是否有任何MondoDB类型的数据库利用CPU的多核特性?



1> Gates VP..:

如果MongoDB有一个致命弱点,那就是它只支持单线程写入和单线程映射减少.

与往常一样,这里有一些权衡.单线程写入是避免锁定问题和最小化开销的最简单方法.以同样的方式,多线程map-reduced是锁定数据的好方法.因此,生产系统上的单线程映射减少可能更容易,更安全.

但是,你不是没有工具.MongoDB将为每个实例提供一个写入线程.因此,如果您对MongoDB进行分片,那么您将为每个分片获得一个写入线程.

如果你想要20亿行的多个索引,你还是要看看分片.这里有一些快速数学:MongoID是12个字节.MongoID的索引是2B*12字节= 22GB +.如果你现在想要再添加两个索引(即使只是两个4字节整数),我们每个人都在谈论7.5GB.

所以在2B行,你说的是索引超过37GB(最小).在大多数8核服务器上,这意味着您甚至无法将索引保留在内存中,更不用说任何数据了.

因此,如果您想要在这里表现出色,那么您将需要开始查看分片.只是基于一般数字.对于FWIW,MySQL将不再擅长处理2B文档.有了那么多数据,你真的希望有多台服务器来跟上负载.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有