From: | "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org> |
---|---|
To: | pgsql-ru-general(at)postgresql(dot)org |
Subject: | Массивы: REFERENCES и выборки |
Date: | 2012-12-14 23:39:05 |
Message-ID: | 20121214233905.GC5284@vdsl.uvw.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ru-general |
было три таблички
orders
drivers
и
orders_drivers - oid, did, dist, time
за годы работы получается что orders_drivers скопилась огромная.
ну и хочется ее свернуть в массивы композитных полей вида
(did,dist,time)[] и класть эти массивчики в orders.
фича в том что с ордером работа кратковременная, далее он в базе
просто лежит.
а вот джоин на водителей через промежуточную стомилионную таблицу
orders_drivers уже тяжел.
но вот что хочется:
1. таки иметь FOREIGN (ну или если это невозможно то хотя бы CHECK, на
проверку валидности did'ов (наличия их в drivers)
2. иметь возможность выбрать только одно подзначение массива в массив,
то есть записи
1, ..., {(23,222,0.5),(22,332,0.6)}
2, ..., {(11,222,27)}
преобразовать выборкой в
1, ..., {23,22}
2, ..., {11}
поодиночке понятно как это сделать. а внутри выборки есть возможность?
ну и последнее.
иногда хочется выбрать orders по входящему набору did
как такой столбик проиндексировать лучше?
ну и похожая про индексы задача:
таблица
тема, сообщение, {метка1,метка2,метка3}
метки хранятся прямо в текстовом виде (когда-то хранили опять же в
отдельной таблице, потом из за нагрузки денормализовали)
метки текстовые
хочется отвечать на вопрос
WHERE tags @> {метка1,метка2}
как массивы лучше проиндексировать?
сейчас построили 5 разных индексов по 5 первым меткам...
говорят что
такое можно GIST/GIN индексом индексировать, но у меня что-то не
получается правильно такой индекс построить по текстовому массиву.
можно пример как этими гист/гин пользоваться?
операции какие-то они хотят, где они описаны?
--
. ''`. 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
From | Date | Subject | |
---|---|---|---|
Next Message | Sergey Konoplev | 2012-12-15 00:05:06 | Re: [pgsql-ru-general] Массивы: REFERENCES и выборки |
Previous Message | Dmitriy Igrishin | 2012-12-05 21:14:25 | Re: [pgsql-ru-general] Re: [pgsql-ru-general] Select по двум массивам |