powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / partitioning: обновление записи - перемещение в другую секцию
25 сообщений из 34, страница 1 из 2
partitioning: обновление записи - перемещение в другую секцию
    #38561928
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу окончательно разобраться: при обновлении записи, при изменении поля/лей, являющихся полями определяющими попадание записи в ту или иную секцию - что делать?
Просто скопировать запись не удастся - если есть ссылки на эту запись в других таблицах - то это практически неосуществимо - надо запомнить где и что, удалить запись, вставить запись в другую секцию и восстановить связи...

Поделитесь опытом и соображениями пожалуйста
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38561969
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spХочу окончательно разобраться: при обновлении записи, при изменении поля/лей, являющихся полями определяющими попадание записи в ту или иную секцию - что делать?
Просто скопировать запись не удастся - если есть ссылки на эту запись в других таблицах - то это практически неосуществимо - надо запомнить где и что, удалить запись, вставить запись в другую секцию и восстановить связи...

Поделитесь опытом и соображениями пожалуйста

"Приходит больной к хирургу, крутит руками и говорит:
- Доктор, мне больно, когда я так делаю! - Так не делайте так! "

Партиционирование не расчитано на возможность изменения поля по которому оно делается... равно как и на ссылки на партиционированные данные... вы просто пытаетесь использовать партиционированние в непредназначанных для этого местах с не очень понятными целями...
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38562020
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

извините, но доктор в документации это забыл описать :) еслиб написали - у больных бы вопросы бы не возникали :)
да и что больной юзеру должен сказать!!?? юзер у виска покрутит и у него больно станет :)
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38562022
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

Что я юзеру должен ответить - извини милок базейка такая на твои хотелки не расчитана!?
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38562028
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spизвини милок базейка такая на твои хотелки не расчитана!?

Странно да, что на самолете под водой тяжеловато плавать?
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38562030
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hawkmoon,

наверно, но я пытаюсь на самолете летать а не плавать под водой или таки юзер не имеет право менять значения полей?
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38562084
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spHawkmoon,

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


может конечно... но тогда не надо по тем полям изменение котрых предусмотрено в ТЗ делать партиционирование...
вообще во всех случаях в моей практике когда партиционирование делалось не по creat_time или (отчетная дата) - оно было не к месту...

по какому полю у вас партиционирование и зачем вы его используете (есть весьма немного use cases для партиционирования в postgresql учитывая имеющиеся ограничения на).
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38562087
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spMaxim Boguk,

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

что именно забыли написать в документации?
Учитывая архитектуру партиционирования это очевидно что обновление полей по которым идет партиционирование - это неприятная задача... и про это в доке написано:

"
The schemes shown here assume that the partition key column(s) of a row never change, or at least do not change enough to require it to move to another partition. An UPDATE that attempts to do that will fail because of the CHECK constraints. If you need to handle such cases, you can put suitable update triggers on the partition tables, but it makes management of the structure much more complicated.
"

Хотите со всем этим возится - дело ваше... но оно того не стоит...

Вы бы свою схему данных бы привели и обьяснили почему и зачем вам нужно партиционирование в вашем случае.
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38562390
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukspHawkmoon,

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


может конечно... но тогда не надо по тем полям изменение котрых предусмотрено в ТЗ делать партиционирование...
вообще во всех случаях в моей практике когда партиционирование делалось не по creat_time или (отчетная дата) - оно было не к месту...

по какому полю у вас партиционирование и зачем вы его используете (есть весьма немного use cases для партиционирования в postgresql учитывая имеющиеся ограничения на).

отчего же секционирование по дате не к месту - если львиную долю в объеме и количестве занимает таблица договоров - секционирование ее хотя бы по годам заметно облегчит работу с ней
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38562518
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spMaxim Bogukпропущено...



может конечно... но тогда не надо по тем полям изменение котрых предусмотрено в ТЗ делать партиционирование...
вообще во всех случаях в моей практике когда партиционирование делалось не по creat_time или (отчетная дата) - оно было не к месту...

по какому полю у вас партиционирование и зачем вы его используете (есть весьма немного use cases для партиционирования в postgresql учитывая имеющиеся ограничения на).

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

по дате создания вполне к месту... но я что то не понимаю идею договора у которого дата создания может менятся...
это раз...

два: у вас миллион договоров в год будет? если нет - вам рано о партиционированиии думать (т.е. оно там просто не надо)...
(и опять же может быть и быстрее а может и медленее... смотря какие запросы вы к этой таблице будете использовать)
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38562619
spMaxim Bogukпропущено...



может конечно... но тогда не надо по тем полям изменение котрых предусмотрено в ТЗ делать партиционирование...
вообще во всех случаях в моей практике когда партиционирование делалось не по creat_time или (отчетная дата) - оно было не к месту...

по какому полю у вас партиционирование и зачем вы его используете (есть весьма немного use cases для партиционирования в postgresql учитывая имеющиеся ограничения на).

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

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

для учётных систем партицирование, по крайней мере в том виде, в каком оно существует, -- зло. абсолютное.
это просто заплатка для затаривания данных в режиме отгрузки картошки. не более.
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38563108
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
йокарный бабай,

думаю в приличных публичных заведения, можно и без оскорблений обходится!
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38563414
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spприличных
или
публичных заведениях
- вы уж определитесь.

Это так, чисто не к месту.
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38563485
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hawkmoon,

а что приличных публичных не бывает?? библиотеки не пример??)
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38564022
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sp,

сударь, вы б ответили на вопрос товарища Максима
Maxim Bogukпо какому полю у вас партиционирование и зачем вы его используете?..
Меня, почему-то, тоже не оставляет ощущение того, что проблема не в Постгресе.
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38564569
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rovan,

на вопрос уже ответил - читайте выше.
По-вашему виноват юзер, что он хочет законно редактировать поле - ну ошибся он, пол часа вводил данные по договору и ошибся в одном поле! Что теперь прикажете делать? Сказать ему извини дружок - движок бд такие операции не умеет делать??
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38564733
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sp,

Как сказали коллеги - в движке такой возможности нет. Возможно - "пока нет".
Вариант, который остался - переселить запись вручную. Написать один раз процедуру, и пользоваться, пока движок не позволит row movement.
Сомневаюсь, что это невозможно.

PS вы скажите всё-таки, у вас хотя бы миллион договоров в год набегает? А будет набегать?
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38564880
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sprovan,

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


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

правду вообще говорить легко и приятно
даже в публичных местах
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38565021
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rovan,

за год - почти 800тыщ, но хвост за несколько лет предыдущих висит...
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38565028
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

оскорблять известное дело всегда легко и просто и при этом если это назвать "правда" - тогда вообще так легко становится всем ее говорить!) вы случаем не у американских товарищей из ЦРУ практикуетесь??)
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38565063
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

если юзер вводит ключ шардирования - это не гут
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38565080
rovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Misha Tyurin,

Кстати +1.

sp,
то есть, ~10 млн за 10 лет.
Можно и партиционировать(с оговорками, конечно).

Если архитектуру своей системы менять не готовы - пишите процедуру миграции строки.
И задумайтесь о смене ключа партиционирования. Например на какое-нибудь автоматически вычисляемое поле. Типа InsertTimestamp.
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38565160
йццй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spqwwq,

оскорблять известное дело всегда легко и просто и при этом если это назвать "правда" - тогда вообще так легко становится всем ее говорить!) вы случаем не у американских товарищей из ЦРУ практикуетесь??)малчег, нихто тебя оскор,простите,бляmь пока даже и не собиралсо
предлагали задумаццо

но ты в неё кушаешь, ога
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38565169
Sergei.Agalakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ограничение текущей системы партицирования в Postgres. Хорошо, конечно, требовать immutable ключей партицирования, но это не всегда возможно. Одно из основных применений партицирования в базах - возможность удалять или архивировать все договора или проводки и т.п. за финансовый год. Это вполне нормально, когда в январе все еще вводят проводки за декабрь прошлого года. Ну не поступили вовремя документы! А партицировать приходится по дате финансовоно года, а не по дате ввода документа.
Напишите свою функцию миграции документов из одной партиции в другую. Не так все плохо обычно, в одной транзакции удаляете все дерево данных со всеми зависимостями из одной партиции, и вставляете в другую партицию. Надеюсь, что все зависимые таблицы тоже партицированы? Конечно, при изменении схемы придется обновлять эту функцию, да и циклические зависимости тоже могут проблем создать, но жить можно.
...
Рейтинг: 0 / 0
partitioning: обновление записи - перемещение в другую секцию
    #38565243
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp... Вообще, если вы делали партицирование на триггерах, а не на рулах, то у вас есть триггеры на апдейт...

То что изменять партицированное поле ВООБЩЕ НИКОГДА НЕЛЬЗЯ ДЕЛАТЬ ИНАЧЕ п....ц - надеюсь понимаете...
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / partitioning: обновление записи - перемещение в другую секцию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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