首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >拥有100万张记录的Mongodb正变得越来越慢

拥有100万张记录的Mongodb正变得越来越慢
EN

Stack Overflow用户
提问于 2022-04-27 21:29:32
回答 1查看 673关注 0票数 1

我正在努力刮当地超市产品的价格,以保持对好的报价的关注。数据保存在mongodb中,但速度越来越慢。现在大约有35000种产品被编入索引,总共有100万条记录,因为同样的产品有价格历史。我插入的一条记录如下所示:

代码语言:javascript
运行
复制
{
    _id: ObjectId("626557a944ea574f69b49324"),
    title: 'Nutella 21042022 2015 food',
    category: 'kitchen',
    date: '21042022',
    datetime: ISODate("2022-04-21T12:15:00.000Z"),
    href: 'http://www.website.com/product/345345',
    name: 'Nutella 800g',
    time: '2015',
    website: 'www.website.com'
}

我在“标题”上使用了一个“标题”,这是超市网站上独一无二的。

代码语言:javascript
运行
复制
const query = { title: title };
const update = { $set: { title, href, name, date, time, datetime..., }};
const options = { upsert: true };
const res = await collection.updateOne(query, update, options);
log("Added: " + title);

有点像

代码语言:javascript
运行
复制
db.supermarket.find({name: "Nutella 800g"}).count()

返回176,这需要几秒钟。我可以接受这种情况,但如果它的大小是5倍到10倍,那么数据库就无法使用。因此,显然有一种更好的方法来构造数据。很明显我做错了什么?

编辑:

只有对索引的更改才添加了一个"title“。

代码语言:javascript
运行
复制
db.supermarket.createIndex({title:1})

结果:

代码语言:javascript
运行
复制
[
  { v: 2, key: { _id: 1 }, name: '_id_' },
  { v: 2, key: { title: 1 }, name: 'title_1' }
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-27 21:44:06

您是否为标题创建了唯一的索引?因为您在注释中提到的索引似乎是一个简单的索引,而不是唯一的索引。这会大大加快你的更新速度。

要加快查询速度,还可以在name列上创建索引,这将有助于更快地检索文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72035504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档