|
|
|
Что делать с устаревающими данными
|
|||
|---|---|---|---|
|
#18+
Уверен, что многие из вас работали с большими системами хранения данных, где табличка с 2-3 миллионами записей не такая уж и большая. Меня интересует вот что. Допустим у нас есть некая финансовая система. В одной из таблиц (пусть ее имя будет pays) записываются финансовые транзакции, в другой хранятся юзеры (users) и т.д. С течением времени в таблице pays будут накапливаться данные, она будет распухать. С одной стороны данные за прошлый-позапрошлый год нам не сильно нужны, но и удалить их мы не имеем права иначе съедет статистика. Как вы уважаемые эксперты поступаете в данном случае? Как вы решаете проблему таблиц накапливающих данные? А то получается как в том бородатом анекдоте про чемодан - жить мешает, а выкинуть нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 16:15 |
|
||
|
Что делать с устаревающими данными
|
|||
|---|---|---|---|
|
#18+
А СУБД то какая??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 16:35 |
|
||
|
Что делать с устаревающими данными
|
|||
|---|---|---|---|
|
#18+
Разве это принципиально? Вопрос у меня сугубо теоритический. БД используемые в проекте в зависимости от версии ПО: MySQL, PostgreSQL, Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 16:38 |
|
||
|
Что делать с устаревающими данными
|
|||
|---|---|---|---|
|
#18+
MySQL - вторая таблица с историческим данными PostgreSQL - вторая таблица с историческим данными Oracle - партиционирование основной таблицы по времени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 16:49 |
|
||
|
Что делать с устаревающими данными
|
|||
|---|---|---|---|
|
#18+
Правильно ли я понимаю: на этапе разработки закладываем две таблицы - одна текущая, другая архивная. Скидывать туда допустим раз в год данные за позапрошлый год. Систему статистики научить использовать обе таблицы для построения отчетов. И жить спокойно не переживая за объем таблиц и скорость выборки. Я правильно понял Вашу мысль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 17:00 |
|
||
|
Что делать с устаревающими данными
|
|||
|---|---|---|---|
|
#18+
в oracle в принципе можно и не делать 2 таблицы.У нас она партиционирована по времени. Насчет "не переживая" - смотря в какой момент времени.Если отчетность будете использовать для online "не переживайте", а если по двум таблицам сразу - то все равно одно и тоже время уйдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 17:14 |
|
||
|
Что делать с устаревающими данными
|
|||
|---|---|---|---|
|
#18+
2 RussianSpy Если вам в любой момент могут понадобиться все данные, то придется их хранить постоянно. Если же из предыдущих лет оперативно нужны только некоторые агрегированные значения, то одно их простых решений: 1. Заводите структуры даных под нужные агрегатные значения (суммы, количества...) по годам. 2. Ежегодно добавляете агрегатные данные по прошедшему году, а сами данные вытесняете в другую базу (лучше всего как полный снимок текущей базы). Естественно, все отчеты должны пользоваться агрегатными данными за прошедшие годы и оперативными за текущий. Если для разбора полетов понадобятся точные данные за предудущие годы (считает это исключительной, но возможной ситуацией), то по заранее продуманному регламенту накатываете снимок за нужный год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 06:54 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=132&tid=1545029]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 347ms |

| 0 / 0 |
