出于缓存目的,我需要检查sql
返回的数据集是否已更改。 HTTP_IF_MODIFIED_SINCE
将检查the file code
是否已更改(如果我输入错了,请纠正我)。我需要一种方法来检查sql
返回的结果是否已更改?最好的方法/方式是什么?谢谢
最佳答案
我需要检查sql返回的数据集是否已更改
真正的答案是:您不能:)
当您不进行检查时,如何判断数据已更改?正确-您根本无法分辨!
数据可能已更改时,请根据您的假设调整缓存时间。没有简单的方法来决定这一点。缓存意味着要在从数据库中获取新数据的成本与您(您的用户)可以使用旧数据的生存时间之间进行权衡,而不是每个数据都可以像其他数据一样被缓存。
数据库本身使用查询高速缓存,并且应该能够从其高速缓存中提供不变的结果集(这样做比PHP可能要聪明得多)。但是,在多用户环境中,由于数据库流量大,这些缓存往往会提前释放。您可以在这里提供自己的缓存策略。