RE: Re: [pgsql-ru-general] Количество

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

In response to

Responses

Browse pgsql-ru-general by date

  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: Количество