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

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

4 ответов

20 просмотров

Транзакции с обновлением всей таблицы или всех строк в таблице берут соответствующие блокировки, и другие сессии, которые пытаются изменить те же строки, не смогут этого сделать, пока блокирующая их транзакция не завершится. Получите простой, от которого хотели избавиться. Обычно как раз массовые обновления желают пачками, чтобы таких блокировок было меньше. Либо триггеры, которые работают в транзакциях, порожденных приложением. Истории с миграциями без простоя в работе самого приложения вообще сложный вопрос, и транзакциями он не решается. Плюс использование транзакций не означает автоматически, что бэкап не нужен. Транзакцию можно закоммитить, и выявить проблемы с результатом уже после. И не уже не откатить, если заранее не позаботиться об этом. Если нужно быстрое переключение на версию БД до миграции, есть 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/

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта