如何从数据库检索或缓存中检查查询

时间:2012-07-31 12:28:06

标签: ruby-on-rails ruby-on-rails-3.1

我有来自rails logs的以下查询

  1. 调用数据库

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

    CACHE (0.0ms)  SELECT `userdetails`.* FROM `userdetails` WHERE `userdetails`.`user_id` = 3 LIMIT 1
    
  3. 未知

    (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'
    
  4. 没有LOAD或CACHE字表示存储类型3

    我如何知道此查询的执行位置?

1 个答案:

答案 0 :(得分:1)

我认为这是因为你在做计数。如果将CACHE发送到缓存,则无论如何都会编写CACHE,我的猜测是它是在数据库上执行的。

要验证这一点,您可以尝试连续多次执行查询,后续调用应标记为{{1}}