MongoDB和大D

2024-06-17 12:19:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大数据库,其中一个集合包含近5亿个文档,如下所示:

{'WP43234' : '12312312'}

第一个是添加,第二个是ID—基本上是两个数据集之间的链接的集合。问题是许多访问都指向同一个ID,这使得它非常庞大。我在第一个字段上有一个索引,它加快了查找过程,但仍然太慢(每个记录大约2分钟):

^{pr2}$

主要目的是在我的应用程序(用python编写)中加快以下过程:

  1. 用户上传带有附件的文件(蛋白质ID)(比如最多100k)
  2. 查找登录和关联ID(最耗时的部分)
  3. 从第二次采集中获取数据(体积小,工作速度快,无需对其进行任何操作)

我个人认为这些应该有效:

  • 数据库在SSD上而不是HDD上
  • 更强大的CPU
  • 多处理-并行请求数据(也许线程更好?)在

不过,我不确定这个速度是否足以处理大量用户请求。还有什么可以做的吗?我在考虑切换到SQL,但是MongoDB的性能似乎更好。在


Tags: 数据用户文档目的id数据库应用程序附件
1条回答
网友
1楼 · 发布于 2024-06-17 12:19:12

您应该为您的收集使用不同的结构:按taxonId对登记进行分组,如下所示:

{ 
  _id: taxonID, 
  acc: [ "WP43234", 
         "WP43234.1",
         "WP43234.2"
       ]
}

然后在acc字段上创建索引。 在考虑升级硬件之前,请确保您的查询已优化。查看explain(),确保正确使用了索引(IXSCAN而不是{})。 使用mongodb 3.4,wiredTiger引擎和snappy压缩

相关问题 更多 >