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

Когда останавливаешь работу да, а когда работу не хочешь останавливать?

4 ответов

5 просмотров

Транзакции с обновлением всей таблицы или всех строк в таблице берут соответствующие блокировки, и другие сессии, которые пытаются изменить те же строки, не смогут этого сделать, пока блокирующая их транзакция не завершится. Получите простой, от которого хотели избавиться. Обычно как раз массовые обновления желают пачками, чтобы таких блокировок было меньше. Либо триггеры, которые работают в транзакциях, порожденных приложением. Истории с миграциями без простоя в работе самого приложения вообще сложный вопрос, и транзакциями он не решается. Плюс использование транзакций не означает автоматически, что бэкап не нужен. Транзакцию можно закоммитить, и выявить проблемы с результатом уже после. И не уже не откатить, если заранее не позаботиться об этом. Если нужно быстрое переключение на версию БД до миграции, есть hot standby реплики, ну или край механизмы snapshot, если их поддерживает СУБД.

Artyom-Denezhny Автор вопроса
Максим Мартынов
Транзакции с обновлением всей таблицы или всех стр...

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

Artyom Denezhny
давай не уходить в дебри, есть блокировки на уровн...

Есть разные типы блокировок, но обе описанные не дают другим сессиям обновлять строки, на которые взята блокировка. Если таких строк много, приложение превращается в read only витрину, а при попытке обновления запрос висит и ждёт, пока блокировка не будет снята (ну или сразу падает, зависит от запроса). https://habr.com/ru/companies/postgrespro/articles/463819/ https://habr.com/ru/companies/postgrespro/articles/462877/

Я отвечал на вот это

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

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

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Карта сайта