首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB指数定义策略

MongoDB指数定义策略
EN

Stack Overflow用户
提问于 2016-01-27 11:48:07
回答 1查看 2.5K关注 0票数 5

我有一个基于MongoDB的数据库,里面有大约100到500 K的文本文档,并且这个集合不断增长。该系统应支持文件的不同领域的查询,如标题、类别、重要性等。

该系统是一个近乎实时的系统,每5-10分钟就会收到新的文件.

为了提高查询的性能,为文档的每个频繁查询字段(字段类型:小文本、数字、日期)定义一个单独的索引是一个好主意吗?或者在MongoDB中还有另一种提高查询性能的最佳实践?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-27 12:03:16

您应该使用/make索引,这取决于您试图查找的结果。在不同的时间为不同的字段设置不同的索引是非常好的主意。

但请记住,索引占用您的RAM。越多的索引越多,它就会使用你的RAM。同时考虑索引的排序,同时进行更好的搜索。

在开发索引策略时,您应该对应用程序的查询有一个深刻的理解。在生成索引之前,请列出要运行的查询类型,以便生成引用这些字段的索引。索引附带了性能成本,但对于大型数据集上的频繁查询来说,这比这更值得。考虑应用程序中每个查询的相对频率,以及该查询是否需要索引。

设计索引的最佳总体策略是使用与生产中运行的数据集类似的数据集分析各种索引配置,以查看哪些配置执行为集合创建的当前索引,以确保它们支持当前和计划中的查询。如果不再使用索引,则删除该索引。

在创建时要选择的一些策略:

  1. 当索引包含由查询扫描的所有字段时,创建索引以支持查询索引支持查询。创建支持查询的索引将大大提高查询性能。
  2. 为了支持高效的查询,在指定索引字段的顺序顺序和排序顺序时,请在这里使用这些策略。
  3. 确保RAM中的索引符合当您的索引符合RAM时,系统可以避免从磁盘读取索引,从而得到最快的处理。
  4. 创建确保选择性的查询选择性是查询使用索引缩小结果的能力。选择性允许MongoDB将索引用于与完成查询相关的工作的更大部分。
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35036538

复制
相关文章

相似问题

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