Какие показатели различия, если таковые существуют между следующими двумя вариантами (mentioned in this answer)Различия между .exists? и где.
Thing.where(name: "Bob").present?
который производит SQL
SELECT COUNT(*) FROM things WHERE things.name = "Bob";
и
Thing.exists?(name: "Bob")
, который производит SQL
SELECT 1 AS one from things WHERE name ="Bob" limit 1;
Поскольку инструкции SQL различны, теоретически возможно, чтобы различия в производительности существовали. Но я не знаю, будет ли индексироваться name
в базе данных, есть какая-то практическая разница. Кроме того, существует ли какая-либо разница в отношении объема работы, выполняемой на Ruby-land (например, инициализация и GC).
Если это имеет значение, я использую Rails 3.2.20.