leve contra o primeiro desempenho em Ruby on Rails

Esta é uma pergunta sobre os métodos de consulta do ActiveRecord:

first Encontre o primeiro registro (ou os primeiros N registros se um parâmetro for fornecido). Se nenhum pedido for definido, ele será pedido pela chave primária.take Dá um registro (ou N registros se um parâmetro é fornecido) sem qualquer ordem implícita. A ordem dependerá da implementação do banco de dados. Se um pedido for fornecido, será respeitado.

usecase: recupera o registro do banco de dados com base no atributo exclusivo, exemplo.

User.where(email: '[email protected]')

Aqui,first gera

SELECT "users".* FROM "users" WHERE "users"."email" = '[email protected]' ORDER BY "users"."id"` ASC LIMIT 1

take gera

SELECT "users".* FROM "users" WHERE "users"."email" = '[email protected]' LIMIT 1

como visto acimafirst adiciona uma cláusula de pedido adicional. Eu estou querendo saber se há uma diferença de desempenho entretake vsfirst.

Étake mais rápido quefirst ou vice-versa?

questionAnswers(1)

yourAnswerToTheQuestion