1

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

Yii 查询缓存指南

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

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

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

4

2 回答 2

3

The guide only gives you an example, how you can use a cache dependency with query caching, but a dependency is not mandatory. If you use one, you can come up with your own SQL to find out, if the cached content is still valid. So the update_time field is also not mandatory.

于 2013-08-23T10:24:45.240 回答
0

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

考虑一个例子。您想要缓存将列出所有用户的查询。类似的东西SELECT * FROM users。假设在任何时间点都是 100 个用户。

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

请记住,如果用户被删除,那么我的示例将无效。那个时候,删除用户后,你应该删除Respective Cache Data。

这样,您应该找出可用于验证缓存数据的相关查询。

于 2015-05-12T09:38:37.103 回答