Информация об изменениях

Сообщение Базовый вопрос про добавление(вставку) данных в бд. от 04.07.2025 12:12

Изменено 04.07.2025 12:46 Sharov

Базовый вопрос про добавление(вставку) данных в бд.
Здравствуйте.

Тут на собеседовании спросили на тему когда считается, что данные добавлены в бд,
когда мы записали их в лог или непосредственно в файл данных? Ну типа когда бд вернет,
что данные добавлены, после добавления данных в лог или когда в сам файл данных будет комит?

Короче, вопрос про пайплайн добавления данных в базу:
1) Сначала фиксируем факт добавления данных в лог (durability). Как минимум это так при WAL.
Как без WAL я, кстати, с ходу не скажу.
2) Далее я должен эти данные валидировать на предмет всяческих ограничений и уникальности (в таблице).
3) Добавление данных в файл бд (commit), перестройка индексов и соотв. машинерия при необходимости.

Кажется, после шага 2 уже можно вернуть в запрос, что ок или не ок. Ждать шаг 3 уже не обязательно,
тут все можно сделать асинхронно.
Хоть это все сильно упрощенно, но отдаленно на реальность похоже? Или все не так, и я все перепутал.

Заранее благодарю.
Базовый вопрос про добавление(вставку) данных в бд.
Здравствуйте.

Тут на собеседовании спросили на тему когда считается, что данные добавлены в бд,
когда мы записали их в лог или непосредственно в файл данных? Ну типа когда бд вернет,
что данные добавлены, после добавления данных в лог или когда в сам файл данных будет комит?

Короче, вопрос про пайплайн добавления данных в базу:
1) Сначала фиксируем факт добавления данных в лог (durability). Как минимум это так при WAL.
Как без WAL я, кстати, с ходу не скажу.
2) Далее я должен эти данные валидировать на предмет всяческих ограничений и уникальности (в таблице).
3) Добавление данных в файл бд (commit), перестройка индексов и соотв. машинерия при необходимости.

Кажется, после шага 2 уже можно вернуть в запрос, что ок или не ок. Ждать шаг 3 уже не обязательно,
тут все можно сделать асинхронно.
Хоть это все сильно упрощенно, но отдаленно на реальность похоже? Или все не так, и я все перепутал.

Заранее благодарю.

Упд: 1 и 2 прекрасно параллелятся.