Вы используете транзакции, когда хотите, чтобы все обновления были успешными или все провалились.Как правило, вещи начинают отходить от него как способа действия и к операциям, которые терпимы к сбоям, выбирают, где они остановились при повторной попытке (вместо вставки дублирующих записей - ищите идемпотентность) и т. Д., И, как правило, более щадящиемир, полный латентности, кратковременной и нестабильной сетевой надежности, разрозненных систем и неспособности устанавливать объединяющие транзакции (поиск саг) и т. д., но по сути вы используете транзакцию, когда хотите, чтобы она была, как если бы это была операция с одним попаданием, котораясработало или нет.
Нет смысла совершать транзакции для чтения, и практически нет смысла использовать транзакцию для одного обновления (если только вы не хотите отменить это обновление позже), но если выПришлось собрать всю информацию о человеке и вставить ее в 17 различных таблиц. Вы можете использовать транзакцию, чтобы убедиться, что все работает или все не удалось, чтобы у вас не было частичных данных.Вам не нужно беспокоиться о снятии 9 из 17 вкладышей, если произошел сбой;вы просто откатываете транзакцию, и вставка так и не произошла, хотя числа автоинкрементов могут оставаться на одном
Существуют ли ограничения на количество данных, которые можно увеличить в транзакции?Технически да, но я думаю, что вряд ли вы нарушите их с корпоративной БД, если будете придерживаться следующего практического правила, которое ..
Реально, вы, вероятно, хотите, чтобы наборы транзакций были маленькимикак можно оставить кому-то минимальную головную боль, чтобы разобраться, когда это пойдет не так.Не сохраняйте каждого нового клиента, которого вы приобрели, на целый год в одной транзакции, а затем решите совершить транзакцию только потому, что это Рождество;десять тысяч вставок сорваны одним длинным именем или сбой сервера в канун Рождества не идеален