专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能数据库开发

关于数据库的原子性和原子操作的概念有关问题

发布时间:2010-05-24 21:17:28 文章来源:www.iduyao.cn 采编人员:星星草
关于数据库的原子性和原子操作的概念问题

我在学习操作系统PV操作的时候知道PV操作都是原子操作,也就是说这些操作是不能被打断的,可以通过暂时关闭中断来实现。

今天我在看数据库事务处理时,它提到原子性。定义为:要么全部执行完,要么什么都不执行。

我的问题来了,我一直以为原子操作和原子性这两个概念是一样的,原子操作具有的就是原子性,具有原子性的操作是原子操作。那么事务是可以并发执行的,也就是说一个事务中的指令在等待IO(打个比方)时,另一个事务的指令可以使用CPU时间。这也就是说第一个事务其实是被打断了的,那么这就和原子操作的定义不符合了,但如果两个事务的指令都能顺利执行完,这是符合原子性定义的。

我的理解就是这样的,不知坛子里的专家有什么见解么?如果有不对的地方烦请指正一下,毕竟学习的时候基本概念是很重要的。

------解决方案--------------------
操作系统的原子操作,粒度更细,并且不具有持久性,不能存储到事务日志当中加以恢复。
而事务处理中的原子性,粒度要大得多。一个长事务,可以持续几天才完成。

------解决方案--------------------
数据库的操作不是原子的,但是结果是原子的。要么成功,要么失败。不会做了一半。。。

这个保证是依靠数据库的实现来保证的。以sqlite为例,它是通过journal文件来保证结果的原子性的。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: