Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вечный вопрос: одна большая или много маленьких? / 10 сообщений из 10, страница 1 из 1
14.04.2006, 10:03
    #33666288
CollarWhiteBlue
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
Вопрос ко всем гуру проектирования.

Есть таблица простой структуры (ИДшник; значение), но с огромным количеством записей (миллионы записей). Имеет ли смысл (с т.зр. производительности) разбить ее на несколько мелких таблиц такой же структуры?

З.Ы. Задача возникла из классического желания описать в БД метаструктуру прикладной схемы данных, которая "в горячую" может редактироваться в пользовательской системе (т.е. юзер может создавать свои поля - без перегенерации прикладной БД). Т.е. рассматриваемая таблица - это просто набор значений свойств объектов этой прикладной схемы данных. Насколько физибл (т.е. "живуче", если по-русски) такое решение с т.зр. производительности? Или более разумен подход, когда - при возникновении необходимости изменения прикладной схемы данных - просто перегенерировать эту схему (+ соответствующий ГУИ) и использовать ее в эксплуатационном режиме как "неизменяемую"?
...
Рейтинг: 0 / 0
14.04.2006, 10:46
    #33666417
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
CollarWhiteBlueИмеет ли смысл (с т.зр. производительности) разбить ее на несколько мелких таблиц такой же структуры?
Нет, не имеет. Но может иметь.

CollarWhiteBlueЗ.Ы. Задача возникла из классического желания описать в БД метаструктуру прикладной схемы данных, которая "в горячую" может редактироваться в пользовательской системе (т.е. юзер может создавать свои поля - без перегенерации прикладной БД).
А вот от этого желания намного лучше было бы отказаться. Лучше дать пользователю возможность генерить свои таблицы - и особенно лучше с точки зрения производительности.
...
Рейтинг: 0 / 0
14.04.2006, 11:00
    #33666471
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
Смысл есть, но для этого нужны уважительные причины. Например заведома старые ненужные записи. Нужда может появиться 1раз в год ("разбор полётов"). Зачем их хранить в базе ? Однако полезно при этом иметь механизм восстановления из архива в рабочую таблицу.
Вопрос "горячей" перестройки структуры таблиц - это настоящий экстрим ! Не стоит этим увлекаться.
...
Рейтинг: 0 / 0
14.04.2006, 11:12
    #33666518
CollarWhiteBlue
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
LSVВопрос "горячей" перестройки структуры таблиц - это настоящий экстрим ! Не стоит этим увлекаться.

Пардон, видимо, не совсем ясно выразился.

Под "горячей" перестройкой имел в виду перестройку прикладной (юзерской) "схемы данных", по другому - "информационной модели", т.е. того представления данных, с которым работает юзер. Т.е. этой схемы данных может и не существовать в виде реальной БД! Она существует как схема данных юзерского приложения, т.е. представляет собой некий "источник данных", не завязанный жестко на реальную БД. Т.е. это вирутальный "источник данных".
Юзер обычео не должен даже знать реальной структуры "мета"-БД, во всяком случае, не имеет никаких средств для доступа к этой структуре - кроме, мб, адванс-юзера, т.е. администратора прикладной "информационной модели".
...
Рейтинг: 0 / 0
14.04.2006, 14:10
    #33667330
CollarWhiteBlue
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
Больше никаких ремарок нет?
...
Рейтинг: 0 / 0
14.04.2006, 16:17
    #33667821
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
автор
Имеет ли смысл (с т.зр. производительности) разбить ее на несколько мелких таблиц такой же структуры?

Это называется "горизонтальное секционирование". Один из путей повышения проиводительности, рекомендуемый в учебниках.
Дает хорошие результаты, если улается разделить таблицу таким образом, чтобы типичный запрос обращался только к одной из частей ( например, актуальная и архивная информация, хотя возможны и другие схемы).
...
Рейтинг: 0 / 0
14.04.2006, 18:45
    #33668264
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
Если по таблице не делаются агрегатные вопросы "от сотворения мира", т.е, к примеру, текущие остатки не считаются как сумма приходов и расходов за все время существования базы, то в разделении на разные таблицы нет смысла.
...
Рейтинг: 0 / 0
14.04.2006, 19:12
    #33668311
Dogen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
Cat2Если по таблице не делаются агрегатные вопросы "от сотворения мира", т.е, к примеру, текущие остатки не считаются как сумма приходов и расходов за все время существования базы, то в разделении на разные таблицы нет смысла.Ниасилил. Если поделить на части, то придется ввести таблицу остатков? Или запросы к "старым" партициям закэшируются? Стоит ли на это рассчитывать?..
...
Рейтинг: 0 / 0
15.04.2006, 11:28
    #33668696
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
Cat2Если по таблице не делаются агрегатные вопросы "от сотворения мира", т.е, к примеру, текущие остатки не считаются как сумма приходов и расходов за все время существования базы, то в разделении на разные таблицы нет смысла.
Не совсем так. Могут быть особые случаи - скажем, сколь я помню, в Clipper была ограничена максимальная глубина b-дерева в индексах, и из-за этого при превышении количеством записей некоторого лимита индексы начинали резко терять в эффективности. Но я безусловно согласен с тем, что не стоит так делать, пока нет этого самого особого случая.
...
Рейтинг: 0 / 0
15.04.2006, 23:07
    #33669147
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вечный вопрос: одна большая или много маленьких?
CollarWhiteBlueЕсть таблица простой структуры (ИДшник; значение), но с огромным количеством записей (миллионы записей). Имеет ли смысл (с т.зр. производительности) разбить ее на несколько мелких таблиц такой же структуры?


Нет.

Насколько решение живуче - живуче с точки зрения производительности - да, вполне, если руки правильно заточены и голова.

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


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