【发布时间】:2011-09-22 14:03:54
【问题描述】:
在 MongoDB 中创建了一个包含 11446615 个文档的集合。
每个文档都有以下形式:
{
"_id" : ObjectId("4e03dec7c3c365f574820835"),
"httpReferer" : "http://www.somewebsite.pl/art.php?id=13321&b=1",
"words" : ["SEX", "DRUGS", "ROCKNROLL", "WHATEVER"],
"howMany" : 3
}
httpReferer:只是一个网址
单词:从上面的 url 解析的单词。列表的大小在 15 到 90 之间。
我打算使用这个数据库来获取具有相似内容的网页列表。
我将使用 words 字段查询此集合,因此我在此字段上创建(或者更确切地说开始创建)索引:
db.my_coll.ensureIndex({words: 1})
创建此集合需要很长时间。我尝试了两种方法(以下测试是在我的笔记本电脑上完成的):
- 插入和索引 插入耗时 5.5 小时,主要是由于 cpu 密集型数据预处理。编制索引耗时 30 小时。
- 插入前的索引 将所有数据插入到集合中需要几天时间。
我的主要关注点是减少生成集合的时间。我不需要复制(至少现在)。查询也不必非常快。
现在,是时候提问了:
我只有一台机器和一个磁盘,我可以运行我的应用程序。运行多个数据库实例并在它们之间拆分我的数据是否有意义?
【问题讨论】: