Re: Массивы: REFERENCES и выборки - Mailing list pgsql-ru-general

From Dmitry E. Oboukhov
Subject Re: Массивы: REFERENCES и выборки
Date
Msg-id 20121216180505.GB3446@vdsl.uvw.ru
Whole thread Raw
In response to Re: [pgsql-ru-general] Массивы: REFERENCES и выборки  (Виктор Вислобоков <corochoone@gmail.com>)
List pgsql-ru-general
> Ну почитайте, возможно наведёт на мысли
> http://postgresql.ru.net/manual/ddl-partitioning.html

ну да примерно так мы и партицируем.

вот пример точки:

Схема  |        Имя        |        Тип         | Владелец |   Размер   |   Описание
--------+-------------------+--------------------+----------+------------+--------------
 public | points            | таблица            | points   | 8192 bytes | Точки от GPS
 public | points_2011_10_12 | таблица            | points   | 16 kB      |
 public | points_2011_10_13 | таблица            | points   | 240 kB     |
 public | points_2011_10_14 | таблица            | points   | 144 kB     |
 public | points_2011_10_15 | таблица            | points   | 80 kB      |
 public | points_2011_10_16 | таблица            | points   | 104 kB     |
 public | points_2011_10_17 | таблица            | points   | 80 kB      |
 public | points_2011_10_18 | таблица            | points   | 80 kB      |
 public | points_2011_10_19 | таблица            | points   | 184 kB     |
 public | points_2011_10_20 | таблица            | points   | 1944 kB    |
 public | points_2011_10_21 | таблица            | points   | 3256 kB    |
  ...
 public | points_2012_12_10 | таблица            | points   | 115 MB     |
 public | points_2012_12_11 | таблица            | points   | 151 MB     |
 public | points_2012_12_12 | таблица            | points   | 164 MB     |
 public | points_2012_12_13 | таблица            | points   | 164 MB     |
 public | points_2012_12_14 | таблица            | points   | 177 MB     |
 public | points_2012_12_15 | таблица            | points   | 176 MB     |
 public | points_2012_12_16 | таблица            | points   | 93 MB      |


все таблички пишутся по дню, имеют собственные индексы итп итд

обращение к общей points позволяет вообще все точки вытащить за весь
период их сбора.

вопрос тут в том что бывает что чисто исторически уже написано много
кода который делает INSERT в родительскую таблицу, тогда мы
партицируем методом переноса данных из основной в архивную

WITH "del" AS (DELETE ... RETURNING)
    INSERT INTO "archive_2012_21_21" SELECT "del";

кроме VACUUM вроде никаких различий между методами :)


> FOREIGN не догма, надо разбираться для чего оно нужно, тем более что
> функциональность FOREIGN KEY долгое время поддерживалась в PostgreSQL
> с помощью триггеров, значит и вам никто не мешает написать триггеры,
> работающие с разбиениями так, как это нужно вам. Главное, что
> разбиения позволяют существенно оптимизировать скорость выполнения
> запросов.

триггеры вещь довольно неудобная в плане того что просто в консольке
сразу не видно что на что ограничивается и куда относится.
а так да триггеры можно юзать
--

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

Attachment

pgsql-ru-general by date:

Previous
From: Виктор Вислобоков
Date:
Subject: Re: [pgsql-ru-general] Массивы: REFERENCES и выборки
Next
From: Sergey Konoplev
Date:
Subject: Re: [pgsql-ru-general] Re: [pgsql-ru-general] Массивы: REFERENCES и выборки