From: | "Sergey Karin" <nil5-ksa(at)yandex(dot)ru> |
---|---|
To: | "'Oleg Bartunov'" <oleg(at)sai(dot)msu(dot)su> |
Cc: | "'pgsql-ru-general'" <pgsql-ru-general(at)postgresql(dot)org> |
Subject: | RE: Re: [pgsql-ru-general] Количество |
Date: | 2005-04-20 06:17:16 |
Message-ID: | S6942412AbVDTGRV/20050420061721Z+46420@gnome09.net.rol.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ru-general |
-----Original Message-----
From: pgsql-ru-general-owner(at)postgresql(dot)org
[mailto:pgsql-ru-general-owner(at)postgresql(dot)org] On Behalf Of Oleg Bartunov
Sent: Wednesday, April 20, 2005 7:53 AM
To: vvislobokov(at)lukoilperm(dot)ru
Cc: 'pgsql-ru-general'
Subject: [OBORONA-SPAM] Re: [pgsql-ru-general] Количество
On Wed, 20 Apr 2005, Viktor Vislobokov wrote:
> Пояснения уже дали, но прошу обратить внимание, что там же где пишется про
> это ограничение говорится и что такое количество колонок в таблице - не
очень
> хорошая идея и часто свидетельствует о неправильном дизайне БД. Помоему
ещё
> где-то было упоминание, что при околопредельном количестве колонок в
таблице,
> производительность СУБД на таких таблицах будет хуже. Так что нужно
серьёзно
> подумать - надо ли оно?
Иногда требуется, но обычно поиск идет только по нескольким атрибутам,
а остальные нужны только для показа. Поэтому, мы запихиваем эти все
остальные
атрибуты в хэш и храним в одном поле. Есть даже спец. тип данных
hstore (www.sai.msu.su/~megera/postgres/gist) для этого,
а если не хочется с этим связываться и работа идет с perl, то можно
хранить стринговое представление хэша (Data::Dumper).
Я полностью согласен с тем, что очень большое количество атрибутов в таблице
говорит о неправильном дизайне. Однако у меня данный вопрос возник вот
почему. Я занимаюсь разработкой ГИС с использованием связки postgres +
postgis. Вот. А там устройство такое. Слой - это отдельная таблица. Строками
таблицы являются объекты. Каждый объект кроме географии имеет некоторое
количество атрибутов. Для всех объектов слоя их количество фиксировано, но
может быть очень большим. Понятно, что в 99.99999% случаев количество
атрибутов не перевалит даже за 50, но если ограничение есть, то надо об этом
знать заранее.
А теперь к вопросу о том, почему не получается хранить все атрибуты в хэше.
Все сторонние системы, например OGR (http://www.gdal.org/ogr) считают, что
атрибут объекта - это отдельное поле таблицы. Исходя из этого они и
работают...
Вот такие вот дела.
>
>> Здравствуйте.
>>
>>
>> В описании ограничений постгреса сказано, что таблица может содержать
>> 2500-1600 столбцов в зависимости от типа этих самых столбцов.
>>
>> Каким образом эта зависимость проявляется?
>>
>> Например, если я имею столбцы int4, varchar, bytea. В основном int4 и
>> varchar, то сколько столбцов может быть?
>>
>>
>> Сергей Карин
>>
>
>
>
Regards,
Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg(at)sai(dot)msu(dot)su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
message can get through to the mailing list cleanly
From | Date | Subject | |
---|---|---|---|
Next Message | Oleg Bartunov | 2005-04-20 08:51:07 | RE: Re: [pgsql-ru-general] Количество |
Previous Message | Oleg Bartunov | 2005-04-20 03:53:27 | Re: Количество |