将Laravel 4查询缓存应用于所有数据库读取

时间:2013-07-07 23:16:55

标签: laravel laravel-4

根据文档,Laravel 4在其查询构建器中内置了查询缓存:仅add ->remember()

有人可以告诉我如何将此方法应用于我的应用中的所有查询,->remember()附加到其中的每个数据库调用中吗?我想是某种后过滤器。

1 个答案:

答案 0 :(得分:1)

您可以扩展查询构建器并简单地重载get()方法,先调用remember(),然后执行get()语句。

但实际上,如果要缓存每个查询,您可以在数据库级别执行此操作。例如,MySQL有一个配置选项,可以在一定时间内自动缓存所有查询。但是,在执行大量插入/更新/删除的应用程序中,由于在每次调用时都会为该表清除缓存,因此性能会很差。

对于每个查询使用Laravel也意味着如果同时进行插入/更新/删除,则会获得过时的数据,因此每次更新时都必须清除缓存。

最佳做法是努力决定是否应该缓存查询。