tomar vs primera actuación en Ruby on Rails
Esta es una pregunta con respecto a los métodos de consulta ActiveRecord:
first
Busque el primer registro (o los primeros N registros si se proporciona un parámetro). Si no se define un orden, se ordenará por clave principal.take
Da un registro (o N registros si se proporciona un parámetro) sin ningún orden implícito. El orden dependerá de la implementación de la base de datos. Si se suministra un pedido será respetado.Usecase: recuperar el registro de la base de datos basado en un atributo único, ejemplo.
User.where(email: '[email protected]')
aquí,first
genera
SELECT "users".* FROM "users" WHERE "users"."email" = '[email protected]' ORDER BY "users"."id"` ASC LIMIT 1
take
genera
SELECT "users".* FROM "users" WHERE "users"."email" = '[email protected]' LIMIT 1
así como se ve arribafirst
añade cláusula adicional de pedido. Me pregunto si hay una diferencia de rendimiento entretake
vsfirst
.
Estake
más rápido quefirst
¿o viceversa?