在加载数据后创建索引是否总是更快?
-
11-12-2019 - |
题
我有大量的记录(〜10亿),我需要加载到mongodb(实际上是tokumx,但无论如何)。我有大约6个不同的索引,我需要在集合上创建。加载数据是否总是更快,然后创建索引?当我看看Mongo的logfile时,似乎Mongo在实际启动索引创建之前做了某种大型操作(也可能是行数?),它为我创建的每个索引都这样做了这一点。
在加载数据后创建索引始终会更快?
如果我等到数据后等待,它会在背景中创建每个索引时更快地创建它们而不是一对一的?
解决方案
在当天我们将批量加载我们的数据:
- 掉落索引
- 在将构建群集索引的顺序中加载数据(即,以精确方式导出数据)
- 负载完成后,创建群集索引 接下来,创建任何额外的非群集索引
- 米勒时间(这是在我买得起的体面啤酒之前)
该方法总是证明比将索引到位速度更快。但是,这是用于Sybase和SQL Server。我想象其他系统会类似的,但我不能说肯定。
其他提示
如果您正在进行大量的负载操作,则使用Tokumx批量装载机的速度更快,因为它只需要一个传递给数据以创建主键索引和任何辅助索引。在 http://文档中有更多信息.tokutek.com / tokumx / tokumx-commands.html#tokumx-new-commands-loader
不隶属于 dba.stackexchange