mongodb - 创建索引需要很长时间

我在 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})

我大约 3 小时前开始创建索引,但它似乎无法在另外 3 小时内完成。

如何提高索引速度?或者也许我应该完全使用另一种方法来解决这个问题?欢迎任何想法:)

最佳答案

不,大型集合的索引速度很慢。您也可以在后台创建索引:

db.my_coll.ensureIndex({words:1}, {background:true});

在后台创建索引会更慢并导致更大的索引。但是,在索引完成之前不会使用它,因此在此期间您将能够正常使用数据库并且索引不会阻塞。

https://stackoverflow.com/questions/6466738/

相关文章:

javascript - Mongoose:需要验证错误路径

python - 我可以只获取 Cursor 对象(pymongo)中的第一项吗?

database-design - MongoDB 存储大量指标/分析数据的方法

mongodb - 比较两个集合的 mongo 差异

java - 指定字段对于 MongoDB 是 transient 的,但对于 RestContro

python - django 和 mongodb 是否使迁移成为过去?

node.js - Mongoose,查找,返回特定属性

java - 如何使用 Java 对 MongoDB 中的文档进行批量更新?

javascript - Meteor Collection 文档 ID : Random. id(

ruby - 在 Ruby 中,您首选的 ODM 是什么? MongoMapper、MongoID