我有大量的记录(〜10亿),我需要加载到mongodb(实际上是tokumx,但无论如何)。我有大约6个不同的索引,我需要在集合上创建。加载数据是否总是更快,然后创建索引?当我看看Mongo的logfile时,似乎Mongo在实际启动索引创建之前做了某种大型操作(也可能是行数?),它为我创建的每个索引都这样做了这一点。

在加载数据后创建索引始终会更快?

如果我等到数据后等待,它会在背景中创建每个索引时更快地创建它们而不是一对一的?

有帮助吗?

解决方案

在当天我们将批量加载我们的数据:

  1. 掉落索引
  2. 在将构建群集索引的顺序中加载数据(即,以精确方式导出数据)
  3. 负载完成后,创建群集索引 接下来,创建任何额外的非群集索引
  4. 米勒时间(这是在我买得起的体面啤酒之前)

    该方法总是证明比将索引到位速度更快。但是,这是用于Sybase和SQL Server。我想象其他系统会类似的,但我不能说肯定。

其他提示

如果您正在进行大量的负载操作,则使用Tokumx批量装载机的速度更快,因为它只需要一个传递给数据以创建主键索引和任何辅助索引。在 http://文档中有更多信息.tokutek.com / tokumx / tokumx-commands.html#tokumx-new-commands-loader

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top