Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostgreSQL и большая база / 4 сообщений из 4, страница 1 из 1
02.08.2007, 23:00
    #34702779
PostgreSQL и большая база
Задачка:

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

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

Что бы вы могли посоветовать из того, чем пользовались сами?
...
Рейтинг: 0 / 0
03.08.2007, 10:29
    #34703293
Thamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL и большая база
Есть еще вариант:
купить 3 дисковых массива. Один для таблицы и еще два под индексы.
...
Рейтинг: 0 / 0
03.08.2007, 11:14
    #34703439
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL и большая база
Прикупить памяти да побольше!!! :)
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
03.08.2007, 23:32
    #34705229
iz
iz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PostgreSQL и большая база
Дмитрий Белявский
- проксирование запросов на несколько БД (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
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / PostgreSQL и большая база / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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