Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: insert, update, performance, locking, row rewrite

Что быстрее — CREATE или UPDATE? Почему?

Проверяет понимание затрат на создание новых и изменение существующих записей.

Короткий ответ

По умолчанию CREATE (вставка новой записи) быстрее, чем UPDATE, так как UPDATE требует поиска существующей строки, блокировки, чтения старых данных и записи изменений, а затем возможного перемещения из‑за изменений размера. INSERT просто добавляет в конец таблицы и обновляет индексы.

Длинный ответ

INSERT (CREATE):

  • Запись новой строки в конец данных, обновление индексов.

  • Меньше операций чтения.

UPDATE:

  • Поиск существующей строки через индекс или полный скан.

  • Блокировка строки, чтение старого и запись нового значения.

  • Если новая строка не помещается в старый слот, может происходить «тостинг» (row rewriting).

Индексы:

  • При UPDATE могут обновляться лишь затронутые индексы, но всё равно вовлекаются операции поиска и блокировки.

Вывод:

В OLTP для массовых изменений иногда выгоднее INSERT + удаление старых данных, но зависит от логики и требований целостности.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#insert

#update

#performance

#locking

#row rewrite

Подпишись на Python Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.