如何决定使用数据库事务

时间:2009-07-07 17:47:58

标签: database transactions

你们如何决定在事务中包装sql?

请注意一下。

干杯!!

6 个答案:

答案 0 :(得分:12)

当您需要完全处理一组更改以考虑操作完成且有效时,应使用事务。换句话说,如果只有一部分成功执行,是否会导致数据库中存储不完整或无效的数据?

例如,如果您有插入后跟更新,如果插入成功并且更新失败会发生什么?如果这会导致数据不完整(在这种情况下,是一个孤立的记录),你应该将两个语句包装在一个事务中,以使它们作为“集合”完成。

答案 1 :(得分:8)

如果您正在执行两个或多个您希望在功能上是原子的语句,则应将它们包装在事务中。

答案 2 :(得分:6)

如果您要执行多个数据修改语句来完成任务,则所有这些都应该在事务中。

这样,如果第一个成功,但是以下任何一个都有错误,您可以回滚(撤消)所有内容,就好像什么也没做过一样。

答案 3 :(得分:5)

如果操作的一部分可以完成而部分操作不能完成,那么每当你不喜欢它时。

答案 4 :(得分:2)

任何时候你想锁定数据库并可能导致生产应用程序崩溃,只要你想用隐藏的可伸缩性噩梦乱丢你的应用程序,就可以继续创建一个事务。让它变大,变慢,并在里面放一个循环。

严重的是,上述答案均未承认大量使用交易所带来的权衡和潜在问题。小心,每次都要考虑风险/回报。

易趣根本不使用它们。我相信还有很多其他人。

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

答案 5 :(得分:0)

每当任何操作属于ACID(原子性一致性隔离耐久性)标准时,您应该使用交易

阅读此article