数据库具有以下缓存命中率:
table A: 0.006
table B: 0.955
table C: 0.023
表 A 和 C 是历史表。没有关系,内容大,不需要快速查询,只有很少的读取请求。我寻找一个功能来告诉 Postgres 忽略这些表的缓存,但徒劳无功。
是不是很简单,如果从数据库中删除表 A 和 C,它会自动增加表 B 的缓存命中率?(假设数据量相同)
数据库具有以下缓存命中率:
table A: 0.006
table B: 0.955
table C: 0.023
表 A 和 C 是历史表。没有关系,内容大,不需要快速查询,只有很少的读取请求。我寻找一个功能来告诉 Postgres 忽略这些表的缓存,但徒劳无功。
是不是很简单,如果从数据库中删除表 A 和 C,它会自动增加表 B 的缓存命中率?(假设数据量相同)
PostgreSQL总是缓存它读取的页面,没有办法避免这种情况。删除表 A 和 C 可能会提高表 B 的缓存命中率,但不会提高多少,因为没有太大的改进空间。可能表 B 的某些部分并未经常使用。
在我看来,PostgreSQL 已经在做你希望它做的事情:表 A 和 C 中的页面从缓存中删除,而 B 中的页面大部分都留在缓存中。