|
|
|
Разбиение (секционирование) в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
эпилог в общем есть база на 29 млн строк. в нее идет постоянная запись и из нее нужно тоже постоянно получать данные. партицирование вроде выход. но что пример не вижу так больше сомневаюсь. есть пример - создание таблицы каждый день. другой по чеку предлагает в разные таблицы писать. а мне вот нужно что - существующую таблицу рабить по месяцам. и создать новую таблицу с данными за последнюю неделю. то бишь будет нахлест из данных в текущей таблице и данных за текущий месяц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 12:01 |
|
||
|
Разбиение (секционирование) в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 13:03 |
|
||
|
Разбиение (секционирование) в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
DoomUnit, Не занимайтесь ерундой, попробуйте простое решение сделайте индекс с опцией CONCURRENTLY и прямо на проде. Когда выжмете все из индексов будете думать о сложных решениях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 15:59 |
|
||
|
Разбиение (секционирование) в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
DoomUnit, 1. Какая интенсивность записи? Сколько данных добавляется в месяц? 2. Возможность разделения есть только по признаку даты? Или возможно что то еще? 3. Какой самый частый интервал выборки данных? день, неделя, месяц? По какому признаку выбираются данные чаще всего? Ну не храните же вы одни даты только. Партицирования именно выход. Вы хотите делать "руками" то, что позволяется партицирование делать автоматически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 18:58 |
|
||
|
Разбиение (секционирование) в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Да гляньте соседнюю тему http://www.sql.ru/forum/1140737/postgres-optimizaciya-voprosa автор не знает основ, он даже индекс не сделал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 19:47 |
|
||
|
Разбиение (секционирование) в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 08:44 |
|
||
|
Разбиение (секционирование) в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
anon2, А.. ну если о индексах не бум бум то и партицирование лучше не трогать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2015, 12:05 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38871548&tid=1998194]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 487ms |

| 0 / 0 |
