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

From Sergey Karin
Subject RE: Re: [pgsql-ru-general] Количество
Date
Msg-id S6942412AbVDTGRV/20050420061721Z+46420@gnome09.net.rol.ru
Whole thread Raw
In response to Re: Количество  (Oleg Bartunov <oleg@sai.msu.su>)
Responses RE: Re: [pgsql-ru-general] Количество
Re: RE: Re: [pgsql-ru-general] Количество
List pgsql-ru-general

-----Original Message-----
From: pgsql-ru-general-owner@postgresql.org
[mailto:pgsql-ru-general-owner@postgresql.org] On Behalf Of Oleg Bartunov
Sent: Wednesday, April 20, 2005 7:53 AM
To: vvislobokov@lukoilperm.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@sai.msu.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@postgresql.org so that your
      message can get through to the mailing list cleanly

pgsql-ru-general by date:

Previous
From: Oleg Bartunov
Date:
Subject: Re: Количество
Next
From: Oleg Bartunov
Date:
Subject: RE: Re: [pgsql-ru-general] Количество