Ускоряет ли Rails или Postges сортировку? - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть приложение Rails 5 с базой данных Postgres 10. Я пытаюсь выяснить, есть ли разница в производительности между этим

MyModel.order(:created_at).last

против

MyModel.order(:created_at => :desc).first

У меня нет индекса в столбце "create_at" - это То же, что было сгенерировано автоматически, когда я впервые создал свою таблицу из миграции на Rails.

1 Ответ

0 голосов
/ 30 апреля 2020

Две команды запрашивают одинаковый объем работы для PostgreSQL
Это очевидно, когда вы смотрите на SQL обеих команд

MyModel.order(:created_at).to_sql
=> "SELECT \"my_model\".* FROM \"my_model\" ORDER BY \"my_model\".\"created_at\" ASC"

против

MyModel.order(created_at: :desc).to_sql
=> "SELECT \"my_model\".* FROM \"my_model\" ORDER BY \"my_model\".\"created_at\" DESC"

Оба Команда просит PostgreSQL упорядочить все строки со значением столбца create_at.
Таким образом, нет никакой разницы между двумя командами

...