SELECT table_1.time, table_1.time, table_2.time FROM table_1
INNER JOIN table_2 on table_1.time = table_2.time
INNER JOIN table_3 on table_1.time = table_3.time
...;
Я использую приведенный выше синтаксис запроса для запроса всех строк в нескольких таблицах, объединения столбцов из разных таблиц и возврата. Однако с увеличением количества строк в таблице и увеличением количества таблиц производительность падает в больших масштабах. Есть ли способ оптимизировать производительность запроса? Для каждой таблицы будет около 0,1 - 1 миллиона строк.
Я слышал такие термины, как индексация, разбиение на разделы и SSD, но я действительно новичок в Postgres и не уверен, к какому из них обратиться. Может ли кто-нибудь предоставить синтаксис команды запроса, который лучше, чем у меня в настоящее время, или дать несколько подробных советов по редактированию структуры моей базы данных?
Редактировать: выборка всех данных происходит только один раз при загрузке страницы. Поэтому я пытаюсь загрузить все данные, которые есть в БД, для визуализации графиков. После создания исходного графика страница будет запрашивать только последние строки каждой таблицы для обновления графиков. Структура таблицы очень проста.
Table 1: SPM1
time | spm1 |
------------------------------
2018-09-05 22:23:52 | 43.21 |
Table 2: SPM2
time | spm2 |
------------------------------
2018-09-05 22:23:52 | 43.21 |
... а таких таблиц около 30 *
Спасибо