Heroku / Postgres — Проблемы со скоростью

#postgresql #heroku

Вопрос:

У меня есть таблица базы данных с 14 миллионами строк в экземпляре Heroku postgres standard-0.

Поскольку heroku дает мне очень ограниченные показатели производительности, я пытаюсь понять, что я могу сделать — кроме как отойти от Heroku, чтобы понять узкое место. Я чувствую, что большинство высших планов на Heroku завышены, и я предпочел бы отказаться от них, чем модернизировать.

Данные состоят из 3 столбцов, но здесь уместны следующие:

  • data_hash (изменение символов — и хэш MD5, однозначно определяющий источник данных, 32 символа)
  • data_retrieval_date (метка времени без часового пояса)
  • data (jsonb)

Этот data столбец составляет на сегодняшний день основную часть общего объема данных (55 Гб) таблицы. на data_hash и есть указатель data_retrieval_date .

Я использую эту структуру, чтобы иногда анализировать последние изменения для одних и тех же записей data_hash с течением времени. Но я обычно фильтрую эти данные только по самой последней записи для каждого хэша данных.

На heroku приведенный ниже запрос занимает 126 секунд:

   SELECT DISTINCT 
    data_hash, 
    data_retrieval_date
  FROM table
  order BY data_hash, data_retrieval_date
  LIMIT 100
 

На локальной копии на моем ноутбуке это занимает менее 5 секунд.

Комментарии:

1. Пожалуйста EXPLAIN (analyze, buffers) , проверьте обе системы.