MongoDB索引定义策略

jecbmhm3  于 2022-12-03  发布在  Go
关注(0)|答案(1)|浏览(130)

我有一个基于MongoDB的数据库,里面有大约100 K到500 K的文本文档,而且文档的数量还在不断增加。系统应该支持按文档的不同字段进行查询,例如标题、类别、重要性等。
该系统是一个近实时的系统,每5-10分钟就有新的文档。
为了提高查询性能,为每个 * 频繁 * 查询的字段(字段类型:小文本,数字,日期)?或者在MongoDB中有其他提高查询性能的最佳实践?

sr4lhrrt

sr4lhrrt1#

你应该根据你试图查找的结果来使用/make索引。在不同的时间为你试图查找的不同字段设置不同的索引是一个很好的主意。
但是要记住索引会占用你的内存。索引越多,占用的内存就越多。同时也要考虑索引的排序,这样才能更好的搜索。
在开发索引策略时,您应该对应用程序的查询有深入的了解。在建立索引之前,请先规划出要执行的查询类型,以便建立指涉这些字段的索引。索引会造成效能上的损失,但是对于大型数据集上的频繁查询来说,这是非常值得的。请考虑应用程序中每个查询的相对频率,以及查询是否调整索引。
设计索引的最佳整体策略是使用与您将在生产环境中运行的数据集类似的数据集分析各种索引配置,以查看哪些配置的性能最佳。检查为集合创建的当前索引,以确保它们支持您当前的查询和计划的查询。如果不再使用某个索引,请删除该索引。
创建时要选择的一些策略:

  1. Create Indexes to Support Your Queries当索引包含查询扫描的所有字段时,索引支持查询。创建支持查询的索引可大大提高查询性能。
  2. Use Indexes to Sort Query Results若要支援有效率的查询,请在指定索引字段的连续顺序和排序顺序时,使用此处的策略。
  3. Ensure Indexes Fit in RAM当您的索引适合RAM时,系统可以避免从磁盘阅读索引,您可以获得最快的处理速度。
  4. Create Queries that Ensure Selectivity选择性是查询使用索引缩小结果范围的能力。选择性允许MongoDB使用索引来完成与查询相关的更大部分工作。

相关问题