缓存便宜但频繁的数据库查询

时间:2016-06-05 17:35:49

标签: postgresql caching

我知道缓存最常用于防止重复执行昂贵的查询。但是,在我们的应用程序中,我们有几个场景,我们经常(例如,每秒数百次)执行理论上相当便宜的查询。例如,

SELECT push_token FROM devices WHERE id = ?

SELECT value FROM some_table_with_configs WHERE key = ?

我的问题是,是否值得缓存这些相当便宜的查询的结果,或者我是否每次都能更好地访问数据库(PostgreSQL,以防万一),并让RDBMS的缓存做他们的工作?

如果它很重要,我会使用JDBC和正确的连接池,并且这些查询会返回非常非常频繁变化的结果。

1 个答案:

答案 0 :(得分:1)

可能优化此方法的一种方法是使用预准备语句。

https://www.postgresql.org/docs/current/static/sql-prepare.html

像这样:

PREPARE prep_one(INT) AS SELECT push_token FROM devices WHERE id = $1;
EXECUTE prep_one(123);