在 Symfony 4/Doctrine 2 中做 "manual" 缓存值得吗?

Is it worth it to do "manual" caching in Symfony 4/Doctrine 2?

我有这两个table

items

itemStats(多对一关系 items table)

在大多数页面中,应用程序只会以列表形式显示项目摘要,并且需要查询 stat_value[=20 的最新 update_time 和 min/max 值=]

目前,它设置为每次需要时只执行完整查询,但由于数据每天只写入一次,每天可能读取数千次,因此值得将其缓存在 items table? (通过添加 lastUpdateminStat',maxStatfields that would be updated after each INSERT in theitemStats` table)

或者 Symfony 或 Doctrine 是否在所有频繁查询的幕后做了足够的缓存,以使其对我们自己的任何操作都毫无用处?

Symfony 和 Doctrine should/could 都不做任何缓存,因为它们不知道数据何时可能已更改并且缓存必须失效。

因此,如果您可以轻松地使它们保持最新状态,请添加额外的字段。

或者检查所选数据库的缓存选项,让 DBMS 完成所有工作:

SELECT 
  MAX(update_time) as lastUpdateTime,
  MIN(stat_value) as minStat,
  MAX(stat_value) as maxStat
FROM
  itemStats
GROUP BY
  item_id

MariaDB 查询缓存https://mariadb.com/kb/en/library/query-cache/