我有这两个表
items
itemStats
(与items
表有多个关系)
在大多数页面中,应用程序将仅以列表形式显示项目摘要,并且需要查询最新的update_time
和最小/最大值stat_value
当前它的设置是在需要时仅执行完整查询,但是由于数据每天仅写入一次,并且每天可能读取数千次,是否值得将其缓存在items
表中? (通过添加lastUpdate
,minStat',
maxStat fields that would be updated after each INSERT in the
itemStats`表)
还是Symfony或Doctrine在所有频繁查询中在后台进行足够的缓存以使其对我们自己的任何事情都无济于事?
答案 0 :(得分:0)
Symfony和Doctrine都不应该/不能进行任何缓存,因为他们不知道何时数据可能已更改并且必须使缓存无效。
因此,如果您可以轻松地使它们保持最新状态,请添加其他字段。
或检查所选数据库的缓存选项,然后让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/