Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Разбиение (секционирование) в PostgreSQL / 8 сообщений из 8, страница 1 из 1
04.02.2015, 12:01:07
    #38871200
DoomUnit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение (секционирование) в PostgreSQL
эпилог
в общем есть база на 29 млн строк. в нее идет постоянная запись и из нее нужно тоже постоянно получать данные.
партицирование вроде выход. но что пример не вижу так больше сомневаюсь.
есть пример - создание таблицы каждый день. другой по чеку предлагает в разные таблицы писать.
а мне вот нужно что - существующую таблицу рабить по месяцам. и создать новую таблицу с данными за последнюю неделю. то бишь будет нахлест из данных в текущей таблице и данных за текущий месяц.
...
Рейтинг: 0 / 0
04.02.2015, 13:03:19
    #38871301
pkorobeinikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение (секционирование) в PostgreSQL
DoomUnit, вы решили смешать и партицирование, и выборку данных.

Попробуйте разбить по месяцам, как и планировали.
Для работы с данными за последнюю неделю можно создать представление [1, 2].
Для ускорения выборки попробуйте частичный индекс [3], где дата добавления меньше одной недели назад.
Частичный индекс, в данном случае, будет иметь смысл на последней партиции.

[1] http://www.postgresql.org/docs/9.4/static/sql-createview.html
[2] http://www.postgresql.org/docs/9.4/static/sql-creatematerializedview.html
[3] http://www.postgresql.org/docs/9.4/static/indexes-partial.html
...
Рейтинг: 0 / 0
04.02.2015, 15:59:51
    #38871548
Gold_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение (секционирование) в PostgreSQL
DoomUnit,

Не занимайтесь ерундой, попробуйте простое решение
сделайте индекс с опцией CONCURRENTLY и прямо на проде.
Когда выжмете все из индексов будете думать о сложных решениях.
...
Рейтинг: 0 / 0
04.02.2015, 18:58:33
    #38871716
Electric200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение (секционирование) в PostgreSQL
DoomUnit,
1. Какая интенсивность записи? Сколько данных добавляется в месяц?
2. Возможность разделения есть только по признаку даты? Или возможно что то еще?
3. Какой самый частый интервал выборки данных? день, неделя, месяц? По какому признаку выбираются данные чаще всего? Ну не храните же вы одни даты только.

Партицирования именно выход. Вы хотите делать "руками" то, что позволяется партицирование делать автоматически.
...
Рейтинг: 0 / 0
04.02.2015, 19:47:06
    #38871735
anon2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение (секционирование) в PostgreSQL
Да гляньте соседнюю тему http://www.sql.ru/forum/1140737/postgres-optimizaciya-voprosa автор не знает основ, он даже индекс не сделал
...
Рейтинг: 0 / 0
05.02.2015, 08:44:19
    #38871890
DoomUnit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение (секционирование) в PostgreSQL

партицирование решил отложить на черный день. индексы ускорили работу в 1000 раз))))
...
Рейтинг: 0 / 0
05.02.2015, 12:05:29
    #38872089
Electric200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение (секционирование) в PostgreSQL
anon2,
А.. ну если о индексах не бум бум то и партицирование лучше не трогать)
...
Рейтинг: 0 / 0
05.02.2015, 14:18:03
    #38872318
Gold_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение (секционирование) в PostgreSQL
DoomUnit

партицирование решил отложить на черный день. индексы ускорили работу в 1000 раз))))

наслаждайтесь. во сколько уменьшилось время вставки? )
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Разбиение (секционирование) в PostgreSQL / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]