Обновления одной строки становятся горячей точкой: конкурирующие транзакции ждут блокировку или получают конфликт. 10 000 запросов не выполнят изменение одной строки параллельно без координации.
Что произойдёт с базой данных, если в неё придёт 10 000 обновлений одной и той же строки?
Обновления одной строки становятся горячей точкой: конкурирующие транзакции ждут блокировку или получают конфликт. 10 000 запросов не выполнят изменение одной строки параллельно без координации.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт с базой данных, если в неё придёт 10 000 обновлений одной и той же строки?
Ответ
Обновления одной строки становятся горячей точкой: конкурирующие транзакции ждут блокировку или получают конфликт. 10 000 запросов не выполнят изменение одной строки параллельно без координации.
В PostgreSQL очередь writers повышает задержки, создаёт WAL и новые версии строки; долгие транзакции усугубляют ситуацию. Итог зависит от SQL: атомарное SET counter = counter + 1 отличается от записи числа, заранее вычисленного в приложении, где возможны потерянные обновления. Учитывайте изоляцию, таймауты и повторы. Для счётчика можно агрегировать приращения или распределить нагрузку по нескольким записям, если допускает бизнес-семантика. Увеличение числа соединений само по себе такую последовательную точку не ускорит.