出于缓存目的,我需要检查sql返回的数据集是否已更改。 HTTP_IF_MODIFIED_SINCE将检查the file code是否已更改(如果我输入错了,请纠正我)。我需要一种方法来检查sql返回的结果是否已更改?最好的方法/方式是什么?谢谢

最佳答案

我需要检查sql返回的数据集是否已更改


真正的答案是:您不能:)

当您不进行检查时,如何判断数据已更改?正确-您根本无法分辨!

数据可能已更改时,请根据您的假设调整缓存时间。没有简单的方法来决定这一点。缓存意味着要在从数据库中获取新数据的成本与您(您的用户)可以使用旧数据的生存时间之间进行权衡,而不是每个数据都可以像其他数据一样被缓存。

数据库本身使用查询高速缓存,并且应该能够从其高速缓存中提供不变的结果集(这样做比PHP可能要聪明得多)。但是,在多用户环境中,由于数据库流量大,这些缓存往往会提前释放。您可以在这里提供自己的缓存策略。

10-08 13:27