принять первое выступление в 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
или наоборот?