powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostgreSQL и большая база
4 сообщений из 4, страница 1 из 1
PostgreSQL и большая база
    #34702779
Задачка:

Есть таблица с 15'000'000 записей, двумя нужными индексами и триггером, модифицирующим другую таблицу в 100 раз меньшего объема. Большая таблица практически постоянно обновляется, плюс есть десятки гетерогенных запросов к ней, в т.ч. из других схем (вследствие чего ее вынос на отдельный сервер затруднен). БД - PostgreSQL 8.x. Область использования - OLTP-приложение. Нужно ускорить работу с этой таблицей.

Варианты:
- проксирование запросов на несколько БД (plproxy)
- репликация (Multimaster или Master-Slave, модифицируем на одной машине, читаем на другой) - Slony-I, pgcluster
- балансировка нагрузки + Master-Slave репликация всей БД (pgpool)
- table partitioning (очень небольшой прирост, даже при нормальном распределении на этих объемах)

Что бы вы могли посоветовать из того, чем пользовались сами?
...
Рейтинг: 0 / 0
PostgreSQL и большая база
    #34703293
Thamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще вариант:
купить 3 дисковых массива. Один для таблицы и еще два под индексы.
...
Рейтинг: 0 / 0
PostgreSQL и большая база
    #34703439
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прикупить памяти да побольше!!! :)
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
PostgreSQL и большая база
    #34705229
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
Дмитрий Белявский
- проксирование запросов на несколько БД (plproxy)
- репликация (Multimaster или Master-Slave, модифицируем на одной машине, читаем на другой) - Slony-I, pgcluster
- балансировка нагрузки + Master-Slave репликация всей БД (pgpool)
- table partitioning (очень небольшой прирост, даже при нормальном распределении на этих объемах)


выбор, как обычно, строится на общих соображениях. я обычно в таких случаях рассуждаю так:

plproxy и partitioning имеют один эффект: первое разбивает по машинам, второе -- по дискам. plproxy организовать сложнее и у него есть ограничения (см. http://postgresmen.ru/articles/view/25 и ссылки там), но попробовать вполне можно, особенно если вы -- фанат skype; все будет работать. multimaster (pgcluster) -- сложность настройки + не совсем хорошая надежность. slony -- проверенное решение, большое коммьюнити, вполне вам подойдет. можно вместо слонов работать с londiste -- он проще (хоть и менее функиональный) и для одной таблицы, как в вашем случае, вполне сгодится.

общий совет: большие таблицы все равно нужно разбивать и делайте это так, как вам удобнее -- внутри одной железки или по нескольким машинам. после партицирования, разумеется, нужно эту самую балансировку будет организовать -- хоть pgpool-ом, хоть с помощью constraints exclusion, нет большой разницы.

подробнее можно сказать только получив больше подробностей от вас.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostgreSQL и большая база
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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