172 похожих чатов

Всем привет. Подскажите пожалуйста в какую сторону копать, чтобы реализовать

такую мысль:
Планируется много схем (с большим количеством таблиц), которые будут создаваться динамически, но иметь одинаковый префикс в названиях (group_<id>), нужно чтобы структура схем была индентичной. Возможно ли как-то при создании схемы унаследовать структуру от другой? И еще вопрос, возможно ли при изменении структуры какой-то таблицы в одной из схем, изменить сразу во всех остальных?

41 ответов

19 просмотров

А зачем тебе схемы эти? Так-то Идиотская идея.

ㅤ- Автор вопроса
Ilya Zviagin
А зачем тебе схемы эти? Так-то Идиотская идея.

Будет схема с какой-то информацией из разных чатов. Например схема чата #1, в ней лежит таблица users, users_activity и тд. И таких чатов много


Будет схема с какой-то информацией из разных чатов...

ИДиотская идея. Ид чата в PK таблиц — и ноль проблем.

ㅤ- Автор вопроса
Ilya Zviagin
ИДиотская идея. Ид чата в PK таблиц — и ноль пробл...

то есть одна таблица на все чаты, но отдельная колонка с ид чата?


Будет схема с какой-то информацией из разных чатов...

Как то очень похоже на ещё одну попытку сделать плохо


то есть одна таблица на все чаты, но отдельная кол...

Не одна таблица конечно, а один набор связанных таблиц.

ㅤ- Автор вопроса
central hardware
Как то очень похоже на ещё одну попытку сделать пл...

Возможно. Поэтому хочу получить информацию у знающих. Буду рад советам

ㅤ- Автор вопроса
Ilya Zviagin
Не одна таблица конечно, а один набор связанных та...

А в плане производительности при выборке данных такой подход не хуже?

ㅤ- Автор вопроса

А в плане производительности при выборке данных та...

Вообще, что-то в БД создавать динамически, во время работы системы - это антипаттерн.

ㅤ- Автор вопроса
Ilya Zviagin
нет

нет что? вполне обычная задача свернуть исторические данные в отдельную таблицу, которая создается динамически

ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ Помпиду
нет что? вполне обычная задача свернуть историческ...

Нет, это не надо делать, это антипаттерн. Это не обычная задача а задача типа "насрать коллегам".

Ilya Zviagin
Нет, это не надо делать, это антипаттерн. Это не о...

то есть ты серьезно сейчас предлагаешь хранить все данные за все время в одной таблице, я правильно понял?

ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ Помпиду
то есть ты серьезно сейчас предлагаешь хранить все...

Да, ты правильно понял. Именно так и нужно делать. Если не хочешь быть ....

попробуй посмотреть на https://www.postgresql.org/docs/8.4/rowtypes.html и/или https://www.postgresqltutorial.com/postgresql-user-defined-data-types/

а если данных очень много?

тогда, очевидно, нужно страдать

ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ Помпиду
то есть ты серьезно сейчас предлагаешь хранить все...

а как иначе ? ну если есть основания что нужно как то разделить, есть партиционирование ) в совсем сложных случаях уже неиспользуемые данные можно вынести в некий архив

А если данных очень много, то надо переходить на вертику, Virtuoso, Sybase IQ или Терадата. И там это ТОЖЕ будет в одной таблице.

А сколько у тебя данных в таблице - это "много" ?

в строках сотни миллионов-миллиарды

От миллиарда - надо в columnstore, да

Сергей Кравчук
а как иначе ? ну если есть основания что нужно как...

иначе создаются таблицы по годам/периодам/группам, и каждая отдельная сущность управляется отдельно. если у многоагентная система, то создают порой даже отдельные схемы для каждого из тенантов. такой подход позволяет существенно сократить расходы на масштабирование и поддержку, т.к. фактически данные организуются в более эффективные структуры для чтения и записи. отсюда же можно и начать шардинг, выкидывать целые таблицы на разные сервера без переделки приложения

Заказчик естественно.

Ilya Zviagin
От миллиарда - надо в columnstore, да

ну глупость же, любая современная бд тянет миллиарды записей на изян

Ilya Zviagin
Заказчик естественно.

волшебный принц на белом коне прискачет оплатить вам касандру, чтоб я так жил, а

Партицирование всё ж позволяет хранить данные в пределах одной БД и обрабатывать их одним запросом.

ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ Помпиду
иначе создаются таблицы по годам/периодам/группам,...

сижу, туда-сюда диван разварачиваю ) если это обдуманный подход с оцененной сложностью реализации, проведенными тестами и прочей обвязкой, тогда возможно да, это будет рабочим решением у меня нет такого опыта ) главное чтобы не было из разряда, ой, а давайте вот так сделаем, а почему, да просто так

Сергей Кравчук
сижу, туда-сюда диван разварачиваю ) если это обду...

у меня есть опыт на терабайты данных, вполне рабочий и удобный подход, который был понятный для большинства разработчиков в команде. вот от пары терабайт он уже работать перестал и перешли как раз на вертику. но даже со сверточными таблицами и уберзатюненным сервером слишком много времени уходит на чтение данных. мы поэтому потом стали просто агрегаты хранить, которые показывали промежуточные результаты

ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ Помпиду
у меня есть опыт на терабайты данных, вполне рабоч...

вообще читал что как раз в таких случаях рулит агрегация, выстраивание тредов и прочее собираются реалтайм данные, накопился день, агрегировали, накопилась неделя, агрегировали и так по всем нужным периодам пользователи работают только с уже агрегированными данными

Alexey Bulgakov
а если данных очень много?

Когда начались проблемы с операцыями поддержки -- там vacuum full, create index, вот это всё -- то шардить. Когда есть мысль hotset поместить на SSD, а остальное на HDD -- тожэ шардить. Но это тожэ всё достаточно неприятно и в среднем работает медленнее, чем без шардов.

Alexey Bulgakov
в строках сотни миллионов-миллиарды

Пффф! Копейки. Если небольшой размер строки (в пределах 100 байт) -- то это жалкие 100GB данных, по сегодняшним временам очень невеликий размер. Часто в RAM влезает, кстати.

И да, columnstore абсолютно ортогонален количеству строк. Можэт быть база на 10к строк, которую лучшэ пихнуть в columnstore, потому, что идеально подходит и незачем ориентироваться на postgres. Можэт быть распределённая база на десять триллионов строк, у которой реальный выбор -- между Postgres, Oracle, DB/2, DB/z, поскольку нужна надёжность и откатанность технологий, к тому жэ columnstore не даст вообще никаких преимуществ из-за особенностей предметной области.

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
как быть с принтером? такой подход прокатит?
zamtmn
12
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Карта сайта