Skip site navigation (1) Skip section navigation (2)

А кто работал с партицированием таблиц? FOREIGN

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: А кто работал с партицированием таблиц? FOREIGN
Date: 2012-04-08 21:23:17
Message-ID: 20120408212317.GR21770@apache.rbscorp.ru (view raw or flat)
Thread:
Lists: pgsql-ru-general
Имеется таблица, которая растет во времени.

Поскольку уже имеется некая инфраструктура, то принято решение
"устаревшие данные" из нее именно переносить в другую
таблицу-наследник.

то есть делаем нечто вроде того что:

WITH
    "move_to" AS (
        DELETE FROM
            "table"
        WHERE
            "time" < '10 day'::interval
        RETURNING
            *
    )
    INSERT INTO "table_archive" SELECT * FROM "move_to"

где table_archive - есть INHERITS от table

Скрипт конечно переносит порциями, а не все сразу, дабы избежать
блокировок. ну это не суть.

Все красиво вроде. С одной таблицей.

а теперь есть аналогичная задачка но немного сложнее.
там есть таблица которая FOREIGN KEY имеет на нашу таблицу из которой
мы данные хотим вынести в архив.

как тут быть? тоже партицировать и выносить в архив кусками? или
как-то можно оставить в непартицированном виде (таблица сильно
разрежена)
-- 

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537

pgsql-ru-general by date

Next:From: Dmitry E. OboukhovDate: 2012-04-13 09:05:03
Subject: аггрегатор по аггрегаторам
Previous:From: Alexey BorzovDate: 2012-04-03 13:38:07
Subject: Re: SELECT COUNT(*) FROM table

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group