принять первое выступление в Ruby on Rails

Это вопрос о методах запросов ActiveRecord:

first Найдите первую запись (или первые N записей, если указан параметр). Если порядок не определен, он будет упорядочен по первичному ключу.take Дает запись (или N записей, если указан параметр) без какого-либо подразумеваемого порядка. Порядок будет зависеть от реализации базы данных. Если заказ предоставлен, он будет соблюден.

usecase: извлечь запись из базы данных на основе уникального атрибута, пример.

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

Вот,first генерирует

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

take генерирует

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

так как видно вышеfirst добавляет дополнительный пункт заказа. Мне интересно, есть ли разница в производительности междуtake противfirst

Являетсяtake быстрее, чемfirst или наоборот?

Ответы на вопрос(1)

Ваш ответ на вопрос