根据文档,Laravel 4在其查询构建器中内置了查询缓存:仅add ->remember()
。
有人可以告诉我如何将此方法应用于我的应用中的所有查询,不将->remember()
附加到其中的每个数据库调用中吗?我想是某种后过滤器。
答案 0 :(得分:1)
您可以扩展查询构建器并简单地重载get()
方法,先调用remember()
,然后执行get()
语句。
但实际上,如果要缓存每个查询,您可以在数据库级别执行此操作。例如,MySQL有一个配置选项,可以在一定时间内自动缓存所有查询。但是,在执行大量插入/更新/删除的应用程序中,由于在每次调用时都会为该表清除缓存,因此性能会很差。
对于每个查询使用Laravel也意味着如果同时进行插入/更新/删除,则会获得过时的数据,因此每次更新时都必须清除缓存。
最佳做法是努力决定是否应该缓存查询。