首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL -为什么是事务?

问SQL -为什么是事务?
EN

Stack Overflow用户
提问于 2013-10-06 04:54:30
回答 5查看 636关注 0票数 3

我刚意识到我头疼好多年了。嗯,隐喻地说。实际上,我在查看我的数据库结构,不知怎么地,我才意识到我从来不使用事务。多伊尔。

互联网上有很多关于交易的数据(begin transaction,rollback,commit等),但令人惊讶的是,对于交易为什么重要,到底有多重要,却没有太多的细节吗?

如果出了问题,我理解处理的概念。当一个人正在进行多个更新时,这是有意义的,例如,一次在多个表中,但据我所知,这是一种糟糕的做法,而且我不这样做。我所有的查询都只是更新一个表。如果查询错误,则取消事务或不处理事务。除了我从服务器上拔出插头之外,还有什么可能出错或可能损坏一个表更新呢?

换句话说,我的问题是,

在我所有的表上实现事务到底有多重要--我完全亵渎没有它们,还是真的那么重要?

更新

+1 to invisal,他指出查询自动包装为事务,我不知道。在我的问题上指出了许多很好的参考资料。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-10-06 05:06:48

当一个人正在进行多个更新时,这是非常有意义的,例如,一次在多个表中。但是--基本上我所有的查询--一次只更新一个表,。如果查询错误,则取消事务或不处理事务。

在你的情况下,它什么也做不了。一个语句本身有它自己的事务。有关更多信息,您可以阅读现有的问题和答案:

票数 4
EN

Stack Overflow用户

发布于 2013-10-06 05:06:51

数据库最重要的属性是可靠地保存数据。

通过遵循酸原则(原子性、一致性、隔离性、持久性),可以确保数据库的可靠性。在数据库上下文中,对数据的单个逻辑操作称为事务。没有交易,这种可靠性就不可能实现。

除了可靠性之外,正确地使用事务还可以大大提高某些数据操作的性能。例如,您可以启动事务,插入大量数据(例如100 k行),然后才能提交。在调用commit之前,服务器不必实际写入磁盘,从而有效地对内存中的数据进行批处理。这样可以大大提高性能。

票数 1
EN

Stack Overflow用户

发布于 2013-10-06 05:13:46

您应该知道,对数据库的每个更新操作都是在事务内执行的,即使只有一个表( server会自动为它创建事务)。总是执行事务的原因是确保其他人提到的ACID。在这里,我想详细阐述一下隔离点。如果没有事务隔离,您可能会遇到以下问题:读取未提交的、不可重复的读取、幻影读取、.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19205562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档