diff options
author | Eugene Kenny <elkenny@gmail.com> | 2017-04-24 21:10:47 +0100 |
---|---|---|
committer | Eugene Kenny <elkenny@gmail.com> | 2017-07-06 14:21:07 +0100 |
commit | 6658e3746b236f84e27e711fced6a83b187ad2b1 (patch) | |
tree | 7b6fb771bdb70425016a6a8f59883d0ea8a773ba /activerecord/lib/active_record/relation/query_methods.rb | |
parent | c8ce3459648ce0f86646b564ce1c0bb16a4b48eb (diff) | |
download | rails-6658e3746b236f84e27e711fced6a83b187ad2b1.tar.gz rails-6658e3746b236f84e27e711fced6a83b187ad2b1.tar.bz2 rails-6658e3746b236f84e27e711fced6a83b187ad2b1.zip |
Skip query cache for in_batches and friends
The `find_each`, `find_in_batches` and `in_batches` APIs usually operate
on large numbers of records, where it's preferable not to load them all
into memory at once.
If the query cache is enabled, it will hold onto the query results until
the end of the execution context (request/job), which means the memory
used is still proportional to the total number of records. These queries
are typically not repeated, so the query cache isn't desirable here.
Diffstat (limited to 'activerecord/lib/active_record/relation/query_methods.rb')
-rw-r--r-- | activerecord/lib/active_record/relation/query_methods.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index 9da8f96337..79495ead91 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -913,6 +913,11 @@ module ActiveRecord self end + def skip_query_cache! # :nodoc: + self.skip_query_cache_value = true + self + end + # Returns the Arel object associated with the relation. def arel # :nodoc: @arel ||= build_arel |