The linked article points out that COUNT
queries might be unexpectedly slow in PostgreSQL.
If you just need to know "are there any records" use any?
. This uses SELECT 1 AS one FROM ... LIMIT 1
under the hood.
If you just need to know "are there no records" use empty?
or none?
. This uses SELECT 1 AS one FROM ... LIMIT 1
under the hood.
In short: Replace foo.count > 0
with foo.any?
or foo.count == 0
with foo.none?
If you require quick counts and can tolerate some level of imprecision, consider exploring the fast_count Show archive.org snapshot gem.
Posted by Michael Leimstädtner to makandra dev (2021-05-31 06:18)