使用ActiveRecord解释COUNT个查询

mah*_*off 5 mysql performance activerecord ruby-on-rails count

我想做以下事情:

Post.count.explain # doesn't work
Run Code Online (Sandbox Code Playgroud)

之所以失败,是因为EXPLAIN是Relation上的一种方法,而Post.count不是一种Relation。它只是查询结果的规则整数。那么如何解释计数查询呢?

Mor*_*ori 6

这是一个生成完全相同的SQL查询,但返回一个Relation以便调用的表单explain

Post.select('count(*)').explain 
Run Code Online (Sandbox Code Playgroud)

两者都生成SQL

 SELECT COUNT(*) FROM `posts`
Run Code Online (Sandbox Code Playgroud)

...因此查询计划应相同。