172 похожих чатов

Привет! Нужна помощь-консультация с партиционированием таблиц. Собственно, задача разбить на партиции

большую табличку в postgresql.
Я так понимаю, есть два варианта:
- Создать копию таблицы через create table partition by, после чего создавать партиции
- Сразу создавать партиции через наследование (INHERITS).

Отсюда есть вопросы:
1) Партиции - это полноценные таблицы в БД, которые отжирают место на диске?
2) Если использовать наследование, то данные в партициях будут являться копиями или нет? То есть в оригинальной таблице они останутся? Это важно, так как если они просто копируются, то получается по итогу создания партиций место на диске сильно уменьшится, так как по сути произойдет полное копированиие таблицы
3) Я так понимаю, все манипуляции есть смысл сначала обкатать на бэкапе, верно?
4) Если юзать первый метод партиционирования (классический), то при копировании данных может закончиться место. Как лучше копировать данные и сразу их удалять из оригинальной таблицы? Батчи? Или есть какой-то более красивый путь, так как удалять данные - как то стремно всегда

4 ответов

23 просмотра

1. да, полноценные таблицы 2. надо уже встроенное декларативное использовать, а не наследование 3. конечно! 4. надо так поступать: выбрать точку перехода (день, граница недели или месяца); создать новую головную таблицу с партициями вперёд от точки; в текущей таблице сделать CHECK CONSTRAINT и NOT NULL для колонки партиционирования; подцепить старую таблицу к новой как “большую историческую”; постепенно оптимизировать большую таблицу удобным способом

3) нет вы что, сразу на продакшене в прайм тайм)

Павел Соколов
2. А почему?

более жесткий контроль над схемой; партиционированные индексы; возможности оптимизатора; автоматическое направление строк в нужную партицию (без триггеров). доступно во всех поддерживаемых версиях Postgres-а. наследование использовалось только для партиций. в данный момент надо сразу декларативное начинать использовать

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта