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?