@idibis

Оптимизация большой таблицы в PostgreSQL?

Привет

В PostgreSQL есть таблица, куда летит куча данных.
Разрослась табличка, уже на 70 гигов, и запросы, СУБД обрабатывает очень туго.

Можно ли настроить в PostgreSQL, что бы через месяц создавалась новая таблица, и информация начала попадать туда, но при запросе, СУБД, знала, где находятся старые данные, а где новые, и выборку делала из нужной таблицы, или даже сразу из двух.

Читал про "Партицирование", но как я понял, мне этот вариант не подходит. Бить таблицу по столбцам я не могу, их всего 2, "itemid" и "clock"

Прошу навести на пусть истинный
  • Вопрос задан
  • 953 просмотра
Решения вопроса 1
Hivemaster
@Hivemaster
Админ, который хочет программировать
Партиционирование - это именно то, что вам нужно. Вы неправильно его поняли, оно делается не по столбцам, а значениям столбцов. То есть, если в clock у вас хранится время создания записи, то можно разбить огромную таблицу на таблицы содержащие записи, у которых в clock только значения с суточным периодом.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
это больше всего похоже на шардинг.
Ответ написан
TheRonCronix
@TheRonCronix
Может быть имеет смысл посмотреть в сторону масштабируемых СУБД, типа hbase?
Выше верно указали, что партиционирование это по сути и есть разбиение таблицы на несколько, например на помесячной основе.
Ответ написан
Комментировать
idShura
@idShura
Разрослась табличка, уже на 70 гигов, и запросы, СУБД обрабатывает очень туго.

Для ускорения запросов нужно делать индексы и оптимизаровать сами запросы.
Ответ написан
Комментировать
@nrgian
70 Г для современных СУБД и современных серверов - это смешно.
Таблица из двух полей тормозит?
Да быть такого не может, если у вас есть индексы.
Вакуум, надеюсь, не догадались отключить?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы