Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Максимальный объем БД на PostgreSQL / 12 сообщений из 12, страница 1 из 1
13.02.2004, 18:09
    #32409222
Maxim Timofeyev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Какие объемы БД держит PostgreSQL без проблем?
Вот у меня сейчас находится в разработке БД. Кол-во записей в основной таблице -- 3400000.
Объем данных в текстовом формате -- около 1,5Gb.
Объем каталога сервера PostgreSQL на FS -- 2,4Gb (с индексами и логами. ;))

На сервере 512Mb. Диск SATA.

Вопрос встал потому, что как-то сильно тормозит на некоторых операциях. Некоторые, типа select * from table order by... через X минут выкидывают сообщения, что не хватает памяти. (select * я не использую). Пробовал ограничивать LIMIT'ом возвращаемый результат -- эффект тот же.
...
Рейтинг: 0 / 0
13.02.2004, 18:41
    #32409252
мдя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
какая фих разница, если ты ORDER BY задал, то LIMIT только после упорядочивания будет делаться. Если тем паче индексов нет по полям сортировки. А оно тебе надо -3400000 записей сортировать и выводить? Может взять таки нормальную порцию (по индексам) и уж в ней упорядочивать и т.п.
...
Рейтинг: 0 / 0
13.02.2004, 21:48
    #32409377
Maxim Timofeyev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Писал писал ответ -- а он куда-то пропал... ;(

К сожалению в SQL я не большой знаток, а писать надо. Так что если что-то неправильно напишу -- сильно не пинайте...

На всякий случай еще раз:
OS Linux, PostgreSQL v 7.4.1, RAM 512Mb, swap 2Gb
БД занимает на диске около 2,4Gb = 3'400'000 записи.

У меня база содержит несколько таблиц, объединенных через внешние ключи с главной таблицей.

Проблемы следующие:
1. Есть поле типа DATE. Я задал интервал day > '01/01/1980' AND day < '31/12/1983' ORDER BY ...
В результате просто получил сообщение, что не хватило памяти!
Без ORDER BY psql выел 2,4Gb, но результат вывел.
Да, индекс на это поле я создал... Производительность не увеличилась ни на грамм от появления индекса. ;(
Хотя вроде есть какая-то функция для интервалов дат или я не прав?

2. В таблице есть ID типа BIGSERIAL PRIMARY KEY, т.е. индекс строится автоматически.
Так вот поиск по полю ID ( id=num ) занимает у меня около минуты! При этом у меня есть четыре поля (улица, дом, корп, кв) по которым создан индекс, поиск по этим значениям приводит к практически моментальному ответу! Почему по ID так долго?!!

Заранее благодарен за ответы!
...
Рейтинг: 0 / 0
14.02.2004, 00:09
    #32409403
Sad Spirit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Maxim Timofeyev
1. Есть поле типа DATE. Я задал интервал day > '01/01/1980' AND day < '31/12/1983' ORDER BY ...
В результате просто получил сообщение, что не хватило памяти!
Без ORDER BY psql выел 2,4Gb, но результат вывел.
Да, индекс на это поле я создал... Производительность не увеличилась ни на грамм от появления индекса. ;(
Хотя вроде есть какая-то функция для интервалов дат или я не прав?

Делался ли для таблицы VACUUM ANALYZE?
Что говорит EXPLAIN о запросе?
Сколько реально записей попадает в интервал? Нужны ли сразу все?


Maxim Timofeyev
2. В таблице есть ID типа BIGSERIAL PRIMARY KEY, т.е. индекс строится автоматически.
Так вот поиск по полю ID (id=num) занимает у меня около минуты! При этом у меня есть четыре поля (улица, дом, корп, кв) по которым создан индекс, поиск по этим значениям приводит к практически моментальному ответу! Почему по ID так долго?!!

Потому что числовая константа по умолчанию считается типа int4.
Приводи к int8
Код: plaintext
1.
... WHERE id = num::int8;

или заключай в кавычки
Код: plaintext
1.
... WHERE id = 'num';
...
Рейтинг: 0 / 0
14.02.2004, 00:11
    #32409404
Sad Spirit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Имелось в виду

"Потому что числовая константа по умолчанию считается типа int4, и индекс по полю типа int8 не используется."
...
Рейтинг: 0 / 0
14.02.2004, 00:35
    #32409409
Maxim Timofeyev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Sad Spirit Делался ли для таблицы VACUUM ANALYZE?

Да. В какой именно момент я не помню, но проверял...
Вот почти только что опять попробовал задать интервал дат (RAM увеличил до 1Gb) --
тот же эффект. НЕ ХВАТАЕТ ПАМЯТИ! ;( Куда уж еще? Судя по top'у он ее всю не
расходует... ;(

Вот что пишет:
ERROR: не хватает памяти
DETAIL: Failed on request of size 8224.

В логе:
[ еще целая куча поскипана ]
DynaHash: 8192 total in 1 blocks; 6912 free (0 chunks); 1280 used
DynaHashTable: 8192 total in 1 blocks; 5080 free (0 chunks); 3112 used
DynaHashTable: 8192 total in 1 blocks; 2008 free (0 chunks); 6184 used
DynaHashTable: 8192 total in 1 blocks; 2008 free (0 chunks); 6184 used
DynaHashTable: 8192 total in 1 blocks; 1984 free (0 chunks); 6208 used
DynaHashTable: 8192 total in 1 blocks; 3520 free (0 chunks); 4672 used
DynaHashTable: 24576 total in 2 blocks; 13240 free (4 chunks); 11336 used
DynaHashTable: 0 total in 0 blocks; 0 free (0 chunks); 0 used
DynaHashTable: 0 total in 0 blocks; 0 free (0 chunks); 0 used
DynaHashTable: 0 total in 0 blocks; 0 free (0 chunks); 0 used
DynaHashTable: 0 total in 0 blocks; 0 free (0 chunks); 0 used
DynaHashTable: 0 total in 0 blocks; 0 free (0 chunks); 0 used
ErrorContext: 8192 total in 1 blocks; 8176 free (3 chunks); 16 used

Sad Spirit Потому что числовая константа по умолчанию считается типа int4.
Приводи к int8

Спасибо! Вылетает тоже мгновенно! Я об этом н знал!..
А в каких случаях подобная проблема с индексами может еще проявлятся?
...
Рейтинг: 0 / 0
15.02.2004, 14:49
    #32409766
Sad Spirit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Maxim Timofeyev
Да. В какой именно момент я не помню, но проверял...
Вот почти только что опять попробовал задать интервал дат (RAM увеличил до 1Gb) --
тот же эффект. НЕ ХВАТАЕТ ПАМЯТИ! ;( Куда уж еще? Судя по top'у он ее всю не
расходует... ;(

Вот что пишет:
ERROR: не хватает памяти
DETAIL: Failed on request of size 8224.

В логе:
[ еще целая куча поскипана ]

Информации много, но вся абсолютно бесполезна. Давай-ка приведи:
1) Схемы участвующих в запросе таблиц;
2) Полный текст запроса, а не только "попробовал задать интервал дат";
3) Вывод команды EXPLAIN для этого запроса.
...
Рейтинг: 0 / 0
16.02.2004, 15:00
    #32410580
Maxim Timofeyev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
авторИнформации много, но вся абсолютно бесполезна. Давай-ка приведи:
1) Схемы участвующих в запросе таблиц;Информации много, но вся абсолютно бесполезна. Давай-ка приведи:
1) Схемы участвующих в запросе таблиц;
2) Полный текст запроса, а не только "попробовал задать интервал дат";
3) Вывод команды EXPLAIN для этого запроса.
2) Полный текст запроса, а не только "попробовал задать интервал дат";
3) Вывод команды EXPLAIN для этого запроса.

Ok. Сейчас база отдана в работу и вроде даже работает. Поиск по датам пока не критичен. Постараюсь на днях добрести до базы и все еще раз перепроверить...

P.S. Существует ли какая-нибудь информация о применении PostgreSQL и объемах БД?
Мне скоро могут подкинуть заказ на значительно большие объемы данных...

Существуют ли какие-нибудь рекомендации по проектированию БД и где вообще можно об этом почитать новичку?

Заранее спасибо!

Немного о таблицах в обсуждаемой БД:
Есть главная таблица, назовем ее main. В ней 1 (id) PRIMARY KEY и 4 FOREIGN KEY
Есть еще четыре подчиненные таблицы. У них всего два поля:
id primary key и name. запрос (через VIEW, хотя и без нее столько же по времени) выбирает значения из таблицы main объеденяя с выборкой из остальных четырех таблиц.
При поиске в main по полю id -- вывод происходит мгновенно (после применения id='num', id у меня bigserial primary key). проблемы пока остались при update и поиску по датам...
...
Рейтинг: 0 / 0
17.02.2004, 20:04
    #32412680
Sad Spirit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Maxim TimofeyevP.S. Существует ли какая-нибудь информация о применении PostgreSQL и объемах БД?
Мне скоро могут подкинуть заказ на значительно большие объемы данных...
На сайте написано
Maximum size for a database: unlimited (4 TB databases exist)

Maxim TimofeyevСуществуют ли какие-нибудь рекомендации по проектированию БД и где вообще можно об этом почитать новичку?
Если давит жаба, то на citforum.ru есть неплохие материалы. Если не давит, то купить Дейта "Введение в системы баз данных".
...
Рейтинг: 0 / 0
11.03.2004, 12:30
    #32437714
Maxim Timofeyev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Что-то давно я сюда не заглядывал...

авторMaximum size for a database: unlimited (4 TB databases exist)

Спасибо.

авторЕсли давит жаба, то на citforum.ru есть неплохие материалы. Если не давит, то купить Дейта "Введение в системы баз данных".

Для хороших вещей жаба не давит. Постараюсь найти.
А сколько она приблизительно стоит?
...
Рейтинг: 0 / 0
11.03.2004, 20:52
    #32438875
centur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Для повышения быстродействия советую подетальней поковырять конфиг постгри - тут на форуме optimization guide пролетал на русском - очень рекомендую. У меня на работе в среднем время работы тяжелых запросов после оптимизации "на глазок" уменьшилось в 4-9 раз.
...
Рейтинг: 0 / 0
13.03.2004, 21:39
    #32440968
FireMink
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Максимальный объем БД на PostgreSQL
Попробуй увеличить забираемый postgres объем памяти в его настройках. Может быть не физической памяти не хватает, а он ее себе мало выделяет.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Максимальный объем БД на PostgreSQL / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]