RE: Re: [pgsql-ru-general] Количество - Mailing list pgsql-ru-general
From | Oleg Bartunov |
---|---|
Subject | RE: Re: [pgsql-ru-general] Количество |
Date | |
Msg-id | Pine.GSO.4.62.0504201248330.28522@ra.sai.msu.su Whole thread Raw |
In response to | RE: Re: [pgsql-ru-general] Количество ("Sergey Karin" <nil5-ksa@yandex.ru>) |
List | pgsql-ru-general |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---559023410-1691952160-1113987067=:28522 Content-Type: TEXT/PLAIN; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8BIT On Wed, 20 Apr 2005, Sergey Karin wrote: > > > -----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 > 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 ---559023410-1691952160-1113987067=:28522--
pgsql-ru-general by date: