2

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

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

4

1 回答 1

1

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

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

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

最佳实践是认真决定是否应该缓存查询。

于 2014-04-02T19:58:15.790 回答