在yii中查询缓存

时间:2013-08-23 06:16:43

标签: php yii

如果我想在此处的教程中使用查询缓存:

Yii Query Caching Guide

我是否应该在每个表中都有 update_time 字段?

$dependency = new CDbCacheDependency('SELECT MAX(update_time) FROM tbl_post');

该字段是否必须存在才能使用查询缓存?

2 个答案:

答案 0 :(得分:3)

本指南仅为您提供了一个示例,如何使用查询缓存的缓存依赖关系,但依赖关系不是必需的。如果您使用一个,如果缓存的内容仍然有效,您可以提出自己的SQL来查找。因此update_time字段也不是强制性的。

答案 1 :(得分:0)

回答你的问题,正如迈克尔已经写过的那样,这不是强制性的。 要了解更多相关信息,您应该了解依赖关系查询所扮演的角色。

考虑一个例子。您希望缓存将列出所有用户的查询。像SELECT * FROM users这样的东西。 假设在任何时间点,它是100个用户。

现在主要的问题是你认为你的缓存数据什么时候变得无效?每当添加新用户时,您都需要重新查询(不使用缓存数据/无效缓存数据)。如何找到新用户?通过查询ID号。因此,如果查询SELECT MAX(ID) FROM Users返回不同的值,则表示添加了新用户。

记住如果用户被删除,那么我的示例将无效。删除用户后,您应删除相应的缓存数据。

通过这种方式,您应该找到可用于验证缓存数据的相关查询。