我有一个基于MongoDB的数据库,里面有大约100到500 K的文本文档,并且这个集合不断增长。该系统应支持文件的不同领域的查询,如标题、类别、重要性等。
该系统是一个近乎实时的系统,每5-10分钟就会收到新的文件.
为了提高查询的性能,为文档的每个频繁查询字段(字段类型:小文本、数字、日期)定义一个单独的索引是一个好主意吗?或者在MongoDB中还有另一种提高查询性能的最佳实践?
发布于 2016-01-27 12:03:16
您应该使用/make索引,这取决于您试图查找的结果。在不同的时间为不同的字段设置不同的索引是非常好的主意。
但请记住,索引占用您的RAM。越多的索引越多,它就会使用你的RAM。同时考虑索引的排序,同时进行更好的搜索。
在开发索引策略时,您应该对应用程序的查询有一个深刻的理解。在生成索引之前,请列出要运行的查询类型,以便生成引用这些字段的索引。索引附带了性能成本,但对于大型数据集上的频繁查询来说,这比这更值得。考虑应用程序中每个查询的相对频率,以及该查询是否需要索引。
设计索引的最佳总体策略是使用与生产中运行的数据集类似的数据集分析各种索引配置,以查看哪些配置执行为集合创建的当前索引,以确保它们支持当前和计划中的查询。如果不再使用索引,则删除该索引。
在创建时要选择的一些策略:
https://stackoverflow.com/questions/35036538
复制相似问题