Ruby on rails 如何检查检索到的数据库或缓存中的查询

Ruby on rails 如何检查检索到的数据库或缓存中的查询,ruby-on-rails,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3.1,我有以下来自rails日志的查询 调用数据库 Userdetail Load (0.1ms) SELECT `userdetails`.* FROM `userdetails` WHERE `userdetails`.`user_id` IN (3, 4) 调用缓存 CACHE (0.0ms) SELECT `userdetails`.* FROM `userdetails` WHERE `userdetails`.`user_id` = 3 LIMIT 1 不为人知 (0.1ms

我有以下来自rails日志的查询

  • 调用数据库

     Userdetail Load (0.1ms)  SELECT `userdetails`.* FROM `userdetails` WHERE `userdetails`.`user_id` IN (3, 4)
    
  • 调用缓存

    CACHE (0.0ms)  SELECT `userdetails`.* FROM `userdetails` WHERE `userdetails`.`user_id` = 3 LIMIT 1
    
  • 不为人知

    (0.1ms)  SELECT COUNT(*) FROM `votes` WHERE `votes`.`voter_id` = 3 AND `votes`.`voter_type` = 'User' AND `votes`.`votable_id` = 5690 AND `votes`.`votable_type` = 'Post'
    
  • 没有LOAD或CACHE字指示类型3中的存储


    我怎么知道这个查询是在哪里执行的呢?

    我想这是因为您正在进行计数<代码>缓存如果被发送到缓存,则无论如何都会被写入,我猜它是在数据库上执行的


    为了验证这一点,您可以尝试在一行中多次执行查询,随后的调用应该标记为
    缓存

    我想这是因为您正在进行计数<代码>缓存
    如果被发送到缓存,则无论如何都会被写入,我猜它是在数据库上执行的


    为了验证这一点,您可以尝试连续多次执行查询,随后的调用应标记为
    缓存

    ,谢谢,我认为您是对的,因为所有这些都只在count查询时发生,并且可能没有加载类对象,所以rails不显示它。谢谢,我认为您是对的,因为所有这些都只在count查询中发生,可能是因为没有加载类对象,所以rails不显示它。