Как принять решение об использовании транзакций базы данных

Как вы, ребята, решили, что вы должны обернуть SQL в транзакции?

Пожалуйста, пролите немного света на это.

Ура !!

Ответы на вопрос(6)

Решение Вопроса

Транзакция должна использоваться, когда вам нужно полностью обработать набор изменений, чтобы считать операцию завершенной и действительной. Другими словами, если только часть выполняется успешно, приведет ли это к тому, что в вашей базе данных будут храниться неполные или недействительные данные?

Например, если у вас есть вставка, за которой следует обновление, что произойдет, если вставка прошла успешно, а обновление не удалось? Если это приведет к неполным данным (в данном случае к потерянной записи), вам нужно обернуть два оператора в транзакции, чтобы они завершились как & quot; set & quot ;.

Всякий раз, когда любая операция подпадает под ACID (Atomicity,Consistency,Isolation,Durability) критерии вы должны использовать транзакции

Прочитай этостатья

В любое время, когда вы хотите заблокировать базу данных и, возможно, вывести из строя производственное приложение, в любое время, когда вы хотите засорять ваше приложение скрытыми кошмарами масштабируемости, продолжайте создавать транзакцию. Сделайте это большим, медленным и поместите петлю внутрь.

Серьезно, ни один из приведенных выше ответов не признает компромисс и потенциальные проблемы, которые возникают при интенсивном использовании транзакций. Будьте осторожны и учитывайте риск / вознаграждение каждый раз.

Ebay не использует их вообще. Я уверен, что есть много других.

http://www.infoq.com/interviews/dan-pritchett-ebay-architecture

Если вы выполняете два или более операторов, которые, как вы ожидаете, будут функционально атомарными, вы должны заключить их в транзакцию.

Всякий раз, когда вам не понравится, если часть операции может завершиться, а часть - нет.

если у вас есть более одного оператора изменения данных для выполнения задачи, все должно быть в транзакции.

Таким образом, если первый успешный, но любой из следующих имеет ошибку, вы можете откатить (отменить) все, как будто ничего не было сделано.

Ваш ответ на вопрос