powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите как правильно ?
5 сообщений из 5, страница 1 из 1
Подскажите как правильно ?
    #33878294
NikulinAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация: есть биллинговая система, информация о звонках (кто, куда, когда, сколько, и т.д.) хранится в таблицах, при чем на каждый месяц таблица создается заново, например radacct2006_03, radacct2006_04, radacct2006_05 и т.д. Создателями системы это объясняется тем что иначе выборка существенно медленне происходит.
Вопрос
1. Правилен ли такой подход ?
2. Возможно ли хранить все в одной таблице, настроив правильную индексацию ?
...
Рейтинг: 0 / 0
Подскажите как правильно ?
    #33878299
NikulinAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточнение: в каждой таблице около 150 000 - 200 000 записей
...
Рейтинг: 0 / 0
Подскажите как правильно ?
    #33878319
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже в мощных СУБД (Oracle, DB2, MS SQL server) используют такие же подходы, только делают это на уровне СУБД посредством секционированных таблиц (partitioned tables), ну и объемы партиций измеряются десятками и сотнями миллионов записей.

Подход оправдан.
Очевидный плюс - использование подхода "разделяй и властвуй" - маленькими табличками управлять легче чем большими (с точки зрения администрирования)
Очевидный минус - неудобство сопровождения, сложность написания запросов (с точки зрения разработки).

Если слить в одну таблицу, и навешать "правильную индексацию", то можно ускорить запросы, но замедлить DML-операции.

Как вариант, если уж так охото всё в кучу собрать - сделать секционированной представление вида:
select * from radacct2006_03
union all
select * from radacct2006_04
union all
...
и т.д. И каждый месяц это представление перестраивать с учетом вновь добавленной таблицы. Все же запросы (отчеты) направлять к этому представлению.
"Продвинутые" сервера могут исключать из рассмотрения "лишние" секции такого представления, данные которых не удовлетворяют условиям WHERE, накладываемым на выборку из этого представления.

НО!!! В любом случае - нужно пробывать. Ибо универсальных решений не существует...
...
Рейтинг: 0 / 0
Подскажите как правильно ?
    #33878328
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как пища для ума

-----------------------------------------------------------------------------------------------------------------------------------------
З.Ы.
Неспешно ищу работу, согласен на переезд в Москву или Питер
...
Рейтинг: 0 / 0
Подскажите как правильно ?
    #33878338
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и непосредственно сылка на доку по PostgreSQL, где идет речь о секционировании таблиц: тынц - PostgreSQL 8.1.4 Documentation, Chapter 5. Data Definition, 5.9. Partitioning

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


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