У меня есть база данных Postgresql с более чем 100 миллиардами строк в одной таблице.
Схема таблицы следующая:
id_1 | integer | | not null |
id_2 | bigint | | not null |
created_at | timestamp without time zone | | not null |
id_3 | bigint | | |
char1 | character varying(20) | | not null |
lang | character(6) | | not null |
gps | point | | |
some_dat | character varying(140)[] | | |
JSON | jsonb | | not null |
Я пытаюсь найти внутри объекта JSON и отсортировать данные по объекту JSON, но проблема в том, что для сортировки и возврата данных требуется слишком много времени.
Также при сортировке данных, например, по created_at
, для результата также требуется время.
Я пытаюсь подать заявку в режиме реального времени.
У меня есть 2 индексации для id_1
и id_2
Кроме того, я пытался использовать материализованное представление для каждого (id
), но проблема в том, что обновление материализованного представления также занимает много времени.
Любые предложения, пожалуйста?
Я использую PostgreSQL 10.3 на сервере Linux с SSD и 128 ГБ оперативной памяти.
Спасибо