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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta