|
MS SQL хранение данных | ☑ | ||
---|---|---|---|---|
0
nikast
08.10.24
✎
17:29
|
Коллеги, друзья, любители печенек.. у меня вопрос, и я решил проконсультироваться с Вами.
Имеем: SQL и таблица данных (ID, Name) в ней 40 млн записей. Необходимо к каждой записи привязать данные (примерно 100 записей к каджой из 40 млн). Характер данных: структурированные данные (ID, DATE, DATA) Внимание вопрос: как правильнее выбрать решение 1) Таблица, в которой будет 4 миллиарда записей (4*100) 2) В первой таблице создать поле blob и хранить данные в текстовом виде (понимаю, что о фильтрации можно будет забыть) 3) Пойти по пути 1с, котрые вынесли журнал ренистрации пользоватлей, в текстовый документ и при необходимости бегать по нему. Эти данные могу понадобиться, а могу и нет (по запросу) Может кто-то решал подобную задачу. Спасибо. |
|||
1
asady
08.10.24
✎
17:30
|
(0) я за 1 вариант
|
|||
2
PR
08.10.24
✎
17:30
|
(0) Ты ничего не сказал, что могло бы определить выбор
Не привел ни одного примера использования, кроме "Эти данные могу понадобиться, а могу и нет" |
|||
3
PR
08.10.24
✎
17:30
|
Хотя (1) это не помешало сделать выбор
|
|||
4
nikast
08.10.24
✎
17:32
|
(2) Согласен, в первой таблице Заказ-Наряд, во второй таблице записи с действиями, которые сотрудник проделал, чтобы выпонить этот заказ.
Поэтому я и написал про аналог журнала регистрации 1с |
|||
5
nikast
08.10.24
✎
17:36
|
(3) Вопрос логичности, скорости роста БД, так как данные по Заказ-Наряд создаются очень активно.
|
|||
6
asady
08.10.24
✎
17:39
|
(0) для нормальной СУБД на нормальном серваке - 4 млрд записей индексированных - Обычная работа
|
|||
7
nikast
08.10.24
✎
17:43
|
(6) Да, согласен. Но какие минусы, если бы я выбрал хранение в BLOB, я бы сэкономил на месте (на размерах бд) ?
|
|||
8
asady
08.10.24
✎
17:46
|
(7) не факт
а производительность точно ниже. |
|||
9
BDA80
08.10.24
✎
17:49
|
Не понимаю, а почему не сделать 2 таблицы, как и принято в реляционных базах - заказ-наряды и действия по ним?
|
|||
10
nikast
08.10.24
✎
17:59
|
(9) Потому что, 4 млрд записей это за 1 год, а что будет дальше? Например 10 млрд...
Логичнее было бы спросить - отдельная таблица, это единственное верное решение? |
|||
11
asady
08.10.24
✎
18:08
|
(10) если тебя смущает размер базы - то не парься для снижения дисковой нагрузки есть варианты - например использование разных файловых групп для разных таблиц
|
|||
12
PR
08.10.24
✎
18:12
|
(4) Конечно же действия отдельно
И вопросы производительности здесь вообще не определяющи и притянуты за уши |
|||
13
Грю
08.10.24
✎
18:44
|
(0) Объясни, в чем проблема? Почему нужно выбирать, и что нужно экономить? У тебя недостаточно свободного места на сервере, или что?
Самое правильное решение - вторая таблица. Если с этим у тебя возникают какие-то проблемы, то их нужно решать отдельно, а не выбирать компромиссы. |
|||
14
nikast
08.10.24
✎
19:26
|
Вопрос был какой подход выбрать, если все склоняются к отдельной таблице единогласно, отлично.. подумал, может будут другие мнения.
Меня отдельно смутил вопрос журнала регистрации в 1с, который лежал отдельно от бд, в этом был же какой-то сакральный смысл. |
|||
15
PR
08.10.24
✎
19:24
|
(14) Сакральный смысл прост
В журнал регистрации пишется как когда транзакция удалась, так и когда нет А в базу можно писать только когда транзакция удалась |
|||
16
nikast
08.10.24
✎
19:26
|
Принято, спасибо за ответы.
|
|||
17
Web00001
09.10.24
✎
07:26
|
(15)> в этом был же какой-то сакральный смысл.
Смысл в том, чтобы хранить логи отдельно. Ты можешь это интегрировать с общей системой хранения логов. Ты можешь прикрутить туда свою систему ротации логов. Основная идея здесь в том, чтобы хранить логи так как это делает весь остальной мир - отдельно и в текстовом файле. |
|||
18
Chai Nic
09.10.24
✎
08:23
|
(15) Можно же было разделить "прикладной" журнал регистрации и "системный". Про транзакции писать в системный, а про то, что произошло в базе - в прикладной, хранящийся внутри базы.
|
|||
19
ptiz
09.10.24
✎
10:47
|
(0) Если версия SQL позволяет использовать сжатие данных - оно в разы может сэкономить место.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |