我有一个基于MongoDB的数据库,里面有大约100 K到500 K的文本文档,而且文档的数量还在不断增加。系统应该支持按文档的不同字段进行查询,例如标题、类别、重要性等。该系统是一个近实时的系统,每5-10分钟就有新的文档。为了提高查询性能,为每个 * 频繁 * 查询的字段(字段类型:小文本,数字,日期)?或者在MongoDB中有其他提高查询性能的最佳实践?
sr4lhrrt1#
你应该根据你试图查找的结果来使用/make索引。在不同的时间为你试图查找的不同字段设置不同的索引是一个很好的主意。但是要记住索引会占用你的内存。索引越多,占用的内存就越多。同时也要考虑索引的排序,这样才能更好的搜索。在开发索引策略时,您应该对应用程序的查询有深入的了解。在建立索引之前,请先规划出要执行的查询类型,以便建立指涉这些字段的索引。索引会造成效能上的损失,但是对于大型数据集上的频繁查询来说,这是非常值得的。请考虑应用程序中每个查询的相对频率,以及查询是否调整索引。设计索引的最佳整体策略是使用与您将在生产环境中运行的数据集类似的数据集分析各种索引配置,以查看哪些配置的性能最佳。检查为集合创建的当前索引,以确保它们支持您当前的查询和计划的查询。如果不再使用某个索引,请删除该索引。创建时要选择的一些策略:
1条答案
按热度按时间sr4lhrrt1#
你应该根据你试图查找的结果来使用/make索引。在不同的时间为你试图查找的不同字段设置不同的索引是一个很好的主意。
但是要记住索引会占用你的内存。索引越多,占用的内存就越多。同时也要考虑索引的排序,这样才能更好的搜索。
在开发索引策略时,您应该对应用程序的查询有深入的了解。在建立索引之前,请先规划出要执行的查询类型,以便建立指涉这些字段的索引。索引会造成效能上的损失,但是对于大型数据集上的频繁查询来说,这是非常值得的。请考虑应用程序中每个查询的相对频率,以及查询是否调整索引。
设计索引的最佳整体策略是使用与您将在生产环境中运行的数据集类似的数据集分析各种索引配置,以查看哪些配置的性能最佳。检查为集合创建的当前索引,以确保它们支持您当前的查询和计划的查询。如果不再使用某个索引,请删除该索引。
创建时要选择的一些策略: