собственно, есть вот такое вот обсуждение:
http://python.su/forum/topic/21878/
Собственно, форум посвящен python/django, однако в данном топике обсуждается скорее проблемы архитектуры БД.
Кому не хочется смотреть туда, либо не совсем понятно, что там обсуждается изложу кратко.
необходимо спроектировать систему, которая будет находиться под ежедневной большой нагрузкой.
есть два варианта:
Вариант 1:
таблица А с полями: титул, описание
Таблица Б с полями: fk на таблицу А, дата1, дата2, ..., датаN Причем среди этих полей будут fk на другие таблицы (таблица В, Г, Д)
Основная нагрузка будет идти на таблицу Б: ежедневная загрузка в нее данных в течение одного часа от нескольких миллионов (на начале работы проекта) до нескольких миллиардов строк. Причем запись в таблицу может осуществляться параллельно из разных источников.
Вариант 2 (указан в начале того обсуждения):
Таблица А с полями: титул, описание
Куча Б таблиц с абсолютно одинаковой структурой (до нескольких десятков тысяч). Fk на таблицу а нет, но привязка объектов из таблицы А к той или иной Б-образной таблице будет осуществляться программно.
Предполагаемые операции над таблицей Б (кроме инсертов): сложные выборки с использованием джоинов и таблиц В, Г, Д
Так вот. Хотелось бы задать вопрос людям, которые серьезно и долго занимаются работой с базами данных и в первую очередь под управлением PostgreSQL.
Каковы минусы второго подхода? Имеет ли он вообще право на существование как вариант для разгрузки таблицы Б?
Есть ли какие-то варианты, позволяющие снизить нагрузку на таблицу Б если использовать подход из первого варианта?
Этот раздел
Этот раздел читали?
http://postgresql.ru.net/manual/ddl-partitioning.html
вообще про наследование в
вообще про наследование в postgresql читал, но пока не применял. Пожалуй, ознакомлюсь еще раз. Спасибо за ссылку.