Создать индекс для этого запроса Heroku говорит, что мой самый медленный - PullRequest
0 голосов
/ 21 июня 2019

Героку говорит, что это мой самый медленный запрос.Как ваша миграция выглядела бы для создания индекса, ускоряющего это?

Это упорядочено create_at:: asc ... не уверен, как это будет работать в индексе ...

Здесьзапрос от приборной панели Heroku:

SELECT "line_movements"."game_moneyline_home"
FROM "line_movements"
WHERE "line_movements"."event_id" = $1
ORDER BY  "line_movements"."created_at" ASC

Ускорить это с помощью индекса?

1 Ответ

1 голос
/ 21 июня 2019

Вы можете индексировать event_id вне источника. Затем, если вы действительно хотите ускорить запрос, используйте целочисленную метку времени для create_at. Вы можете сделать что-то вроде

#add column created_at_int:integer to line_movements
#line_movement.rb
after_create :store_unix_time
def store_unix_time
  update_attributes created_at_int: created_at.to_i
end
#and get the time converted back by
def created_at_timestamp
  DateTime.parse(Time.at(created_at_int).to_s).in_time_zone
end

sql сортировка по целому числу быстрее, чем сортировка по дате и времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...