|
|
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
Вопрос ко всем гуру проектирования. Есть таблица простой структуры (ИДшник; значение), но с огромным количеством записей (миллионы записей). Имеет ли смысл (с т.зр. производительности) разбить ее на несколько мелких таблиц такой же структуры? З.Ы. Задача возникла из классического желания описать в БД метаструктуру прикладной схемы данных, которая "в горячую" может редактироваться в пользовательской системе (т.е. юзер может создавать свои поля - без перегенерации прикладной БД). Т.е. рассматриваемая таблица - это просто набор значений свойств объектов этой прикладной схемы данных. Насколько физибл (т.е. "живуче", если по-русски) такое решение с т.зр. производительности? Или более разумен подход, когда - при возникновении необходимости изменения прикладной схемы данных - просто перегенерировать эту схему (+ соответствующий ГУИ) и использовать ее в эксплуатационном режиме как "неизменяемую"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 10:03 |
|
||
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
CollarWhiteBlueИмеет ли смысл (с т.зр. производительности) разбить ее на несколько мелких таблиц такой же структуры? Нет, не имеет. Но может иметь. CollarWhiteBlueЗ.Ы. Задача возникла из классического желания описать в БД метаструктуру прикладной схемы данных, которая "в горячую" может редактироваться в пользовательской системе (т.е. юзер может создавать свои поля - без перегенерации прикладной БД). А вот от этого желания намного лучше было бы отказаться. Лучше дать пользователю возможность генерить свои таблицы - и особенно лучше с точки зрения производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 10:46 |
|
||
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
Смысл есть, но для этого нужны уважительные причины. Например заведома старые ненужные записи. Нужда может появиться 1раз в год ("разбор полётов"). Зачем их хранить в базе ? Однако полезно при этом иметь механизм восстановления из архива в рабочую таблицу. Вопрос "горячей" перестройки структуры таблиц - это настоящий экстрим ! Не стоит этим увлекаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 11:00 |
|
||
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
LSVВопрос "горячей" перестройки структуры таблиц - это настоящий экстрим ! Не стоит этим увлекаться. Пардон, видимо, не совсем ясно выразился. Под "горячей" перестройкой имел в виду перестройку прикладной (юзерской) "схемы данных", по другому - "информационной модели", т.е. того представления данных, с которым работает юзер. Т.е. этой схемы данных может и не существовать в виде реальной БД! Она существует как схема данных юзерского приложения, т.е. представляет собой некий "источник данных", не завязанный жестко на реальную БД. Т.е. это вирутальный "источник данных". Юзер обычео не должен даже знать реальной структуры "мета"-БД, во всяком случае, не имеет никаких средств для доступа к этой структуре - кроме, мб, адванс-юзера, т.е. администратора прикладной "информационной модели". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 11:12 |
|
||
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
Больше никаких ремарок нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 14:10 |
|
||
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
автор Имеет ли смысл (с т.зр. производительности) разбить ее на несколько мелких таблиц такой же структуры? Это называется "горизонтальное секционирование". Один из путей повышения проиводительности, рекомендуемый в учебниках. Дает хорошие результаты, если улается разделить таблицу таким образом, чтобы типичный запрос обращался только к одной из частей ( например, актуальная и архивная информация, хотя возможны и другие схемы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 16:17 |
|
||
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
Если по таблице не делаются агрегатные вопросы "от сотворения мира", т.е, к примеру, текущие остатки не считаются как сумма приходов и расходов за все время существования базы, то в разделении на разные таблицы нет смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 18:45 |
|
||
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
Cat2Если по таблице не делаются агрегатные вопросы "от сотворения мира", т.е, к примеру, текущие остатки не считаются как сумма приходов и расходов за все время существования базы, то в разделении на разные таблицы нет смысла.Ниасилил. Если поделить на части, то придется ввести таблицу остатков? Или запросы к "старым" партициям закэшируются? Стоит ли на это рассчитывать?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2006, 19:12 |
|
||
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
Cat2Если по таблице не делаются агрегатные вопросы "от сотворения мира", т.е, к примеру, текущие остатки не считаются как сумма приходов и расходов за все время существования базы, то в разделении на разные таблицы нет смысла. Не совсем так. Могут быть особые случаи - скажем, сколь я помню, в Clipper была ограничена максимальная глубина b-дерева в индексах, и из-за этого при превышении количеством записей некоторого лимита индексы начинали резко терять в эффективности. Но я безусловно согласен с тем, что не стоит так делать, пока нет этого самого особого случая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2006, 11:28 |
|
||
|
Вечный вопрос: одна большая или много маленьких?
|
|||
|---|---|---|---|
|
#18+
CollarWhiteBlueЕсть таблица простой структуры (ИДшник; значение), но с огромным количеством записей (миллионы записей). Имеет ли смысл (с т.зр. производительности) разбить ее на несколько мелких таблиц такой же структуры? Нет. Насколько решение живуче - живуче с точки зрения производительности - да, вполне, если руки правильно заточены и голова. Но там другие проблемы - нереляционная структура получается, обрабатывать ее реляционными операциями сложно . Более накладно по производительности и менее удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2006, 23:07 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33667821&tid=1545315]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 419ms |

| 0 / 0 |
