mongoid query caching

后端 未结 4 1886
忘掉有多难
忘掉有多难 2020-12-28 18:38

Rails\' ActiveRecord has a feature called Query Caching (ActiveRecord::QueryCache) which saves the result of SQL query for the life-span of a request. While I\'m not very fa

4条回答
  •  情话喂你
    2020-12-28 18:51

    OK, Mongoid 4 supports QueryCache middleware.

    Just add middleware in application.rb

    config.middleware.use "Mongoid::QueryCache::Middleware"
    

    And then profit:

      MOPED: 127.0.0.1:27017 QUERY        database=XXX collection=page_variants selector={"$query"=>{"_id"=>BSON::ObjectId('5564dabb6d61631e21d70000')}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 0.4397ms
      MOPED: 127.0.0.1:27017 QUERY        database=XXX collection=page_variants selector={"$query"=>{"_id"=>BSON::ObjectId('5564dacf6d61631e21dc0000')}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 0.4590ms
      QUERY CACHE                         database=XXX collection=page_variants selector={"$query"=>{"_id"=>BSON::ObjectId('5564c9596d61631e21d30000')}, "$orderby"=>{:_id=>1}}
      QUERY CACHE                         database=XXX collection=page_variants selector={"$query"=>{"_id"=>BSON::ObjectId('5564dabb6d61631e21d70000')}, "$orderby"=>{:_id=>1}}
    

    Source:

    Mongoid changelog

    https://github.com/mongoid/mongoid/blob/master/CHANGELOG.md#new-features-2

    3410 Mongoid now has a query cache that can be used as a middleware in Rack applications. (Arthur Neves)

    For Rails:

    config.middleware.use(Mongoid::QueryCache::Middleware)
    

提交回复
热议问题