数据库供应商如何实现交易?

使用数据库时,通常必须使用事务.比方说,我想将一定数量的资金从账户A转移到账户B.这涉及两个问题:

>减少账户A的钱
>在帐户B中增加它.

从理论上讲,我可以单独进行查询,但会发生错误.因此,可以肯定的是,我可以在事务中打包两个查询,并确保两个操作都定期结束或根本没有任何更改.没有钱消失或被创造.

问题是,在我看来,这只会将责任从我转移到数据库供应商.现在由数据库来完成两个操作,并确保两者都已完成或没有任何更改.数据库开发人员面临着发生错误的相同问题.

What techniques do database vendors use to ensure safety for transactions?

解决方法

维基百科上的 ACID – Implementations页面将帮助您开始预写日志记录,影子分页和多版本并发控制.点击链接查找更多信息.

每个DBMS供应商都实现自己的算法,通常是几个不同的算法,具体取决于上下文,完整的ACID或宽松的要求,分布式事务一致性要求等……

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03