我目前想为 RavenDB 创建一些静态索引以获得更好的性能。
但是当我浏览 RavenDB文档时,有一个特定的句子真的让我重新考虑了我的初衷。
因此,我们建议将应用程序中的大多数操作基于静态索引,或者至少确保将动态索引创建的临时索引提升为永久索引。
好吧,因为我的解决方案非常大,我什至不知道我需要哪些索引。这将迫使我查看整个解决方案并为所有其他操作创建静态索引。我可能夸大了,但仍然......我不知道所有这些工作是否值得。
我的问题是:
如何确保临时索引已升级为永久索引?
编辑:
我了解到的事实是,一些索引被提升为永久/静态自动索引,这些索引被持久化,即使我重新启动 Raven 服务器也不会丢失它们。我的理解是它取决于 Server Configuration options
。因此,我的一些索引已被提升为永久索引,并且在重新启动后,我只丢失了那些临时索引。尽管如此,我的问题仍然存在。
编辑2:
我对原始问题进行了编辑并收集了更多信息。把我当成一个真正愚蠢的人。我需要解释。请不要将我与诸如此类的事情混淆"permanent/static"
静态索引是永久的,但永久索引不一定static
。也许我问错了问题。我只是想确保 RavenDb 服务器不必在每次调用查询时都创建新的动态索引,而我每分钟并不真正调用一百次。
RavenDB 可以分析查询并动态创建临时索引,该索引将在被处理之前保留一段时间。
我从 Ravendb 服务器配置选项中了解到:
当您在一分钟内使用它一百次时,索引将被提升为永久(默认值)。如果它保持动态并且在 20 分钟内未使用,则会被删除。(默认)。但是,如果我有将要使用的查询,我不知道 TempIndexPromotionMinimumQueryCount / 2 per TempIndexPromotionThreshold。所以也许我现在的问题是:
经常使用但动态的索引和永久索引之间有什么显着区别吗?