powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Партиционирование ?
7 сообщений из 7, страница 1 из 1
Партиционирование ?
    #33314511
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://developer.postgresql.org/docs/postgres/release.html#RELEASE-8-1

Вот там в прес-релизе нашол авторImprove performance for partitioned tables (Simon)

The new constraint_exclusion configuration parameter avoids lookups on child tables where constraints indicate that no matching rows exist in the child table.

This allows for a basic type of table partitioning. If child tables store separate key ranges and this is enforced using appropriate CHECK constraints, the optimizer will skip child table accesses when the constraint guarantees no matching rows exist in the child table.

Как это понимать ? Когда в постгресте появилась возможность создавать партиции ?
...
Рейтинг: 0 / 0
Партиционирование ?
    #33314516
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сдается мне, что во времен 8-ки. Смотри tablespaces.
...
Рейтинг: 0 / 0
Партиционирование ?
    #33314564
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кувалдин РоманСдается мне, что во времен 8-ки. Смотри tablespaces.

Смотрел ... но там нету ни какого воспоминания о каком либо делении таблицы (индекса) на разные партиции . Там ведь только где физически будет лежать ВСЯ таблица. нельзя ведь часть (логическую часть таблицы) данных положить на один диск а другую часть (которая к примеру много обновляется) положить на другой.
...
Рейтинг: 0 / 0
Партиционирование ?
    #33315393
domanix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно - если использовать механизм наследования...
CREATE TABLE test (...) TABLESPACE pg_default
CREATE TABLE old_test () inherits (test) TABLESPACE pg_arhiv

select * from test - тянутся записи из обоих таблиц(т.е. текущие и старые)
select * from test only - тянутся записи только текущие
select * from old_test - тянутся записи только старые

распределение записей между старым и новым таблеспейсом можно
делегировать триггеру на test...и old_test
...
Рейтинг: 0 / 0
Партиционирование ?
    #33315517
domanix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
constraint_exclusion
это новый параметр в 8.1
должен позволить не искать в таблицах потомках запись если она не удовлетворяет
выражению check.., т.е. поиск будет проводится только в той партиции которая удовлетворяет условиям поискаюю


Enables or disables the query planner's use of table constraints to limit table access. The default is off.

When this parameter is on, the planner compares query conditions with table CHECK constraints, and omits scanning tables where the conditions contradict the constraints. (Presently this is done only for child tables of inheritance scans.) For example:

CREATE TABLE parent(key integer, ...);
CREATE TABLE child1000(check (key between 1000 and 1999)) INHERITS(parent);
CREATE TABLE child2000(check (key between 2000 and 2999)) INHERITS(parent);
...
SELECT * FROM parent WHERE key = 2400;With constraint exclusion enabled, this SELECT will not scan child1000 at all. This can improve performance when inheritance is used to build partitioned tables.
...
Рейтинг: 0 / 0
Партиционирование ?
    #33315670
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за полный и равёрнутый ответ. После перечитывания док и примеров касающихся наследования ... ну и немного сам попробовать успел. Понял что дальше чем новые и старые (читать текущие и архивные данные) данные это дело мало годится так как сопровождение очень тяжело. А перетаскивание лучше ручками делать ... и условие CHECK подправлять не забывать.

Просто думал что это типа как в оракле. Потому и ОЧЕНЬ удивился что я такое пропустил.

Кстати а что с вторичными ключами ? с ними вроде будет проблемка ... если родителей(первычные ключи) перенести в таблицу архива.....
...
Рейтинг: 0 / 0
Партиционирование ?
    #33315711
domanix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Индексы не наследуются..
Наследуются только метаданные ( поля)..
За всем остальным хозяйством придется следить самостоятельно...
Т.е. если вам это надо - и вы действительно знаете, что делаете -
то вам дан в руки механизм- который можно использовать..( но не бездумно)
Т.е. у вас в руках не автоматическая коробка передач- а ручная...
Точно такой же рычаг есть и для материализированых view..
такая функциональность есть но придется немного поработать руками...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Партиционирование ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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