加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite

发布时间:2020-12-13 00:15:07 所属栏目:百科 来源:网络整理
导读:单个数据库文件中的提交 步骤如下: (1) 获得共享锁。 SQLITE在更新数据库之前要先读数据库,所以要先获得共享锁。 SQLite的共享锁是针对操作系统缓存的,而非磁盘文件,进程消失或系统崩溃都会导致锁丢失。 (2) 读取数据 从磁盘读到操作系统缓存,再读到用

单个数据库文件中的提交
步骤如下:
(1) 获得共享锁。
SQLITE在更新数据库之前要先读数据库,所以要先获得共享锁。
SQLite的共享锁是针对操作系统缓存的,而非磁盘文件,进程消失或系统崩溃都会导致锁丢失。

(2) 读取数据
从磁盘读到操作系统缓存,再读到用户进程。

(3) 申请一个保留锁(Reserved Lock)
保留锁的作用是告诉数据库我要修改数据库了,其他事务不能获得保留锁。所以一个数据库只能有一个保留锁。保留锁可以和其他共享锁共存,都可以读取数据库。

(4)生成回滚日志文件(Rollback Journals log file)
将修改前的数据写到回滚日志文件中

(5)修改用户进程空间中的数据

(6)将回滚日志文件写到磁盘

(7) 获得独享锁,修改数据库磁盘文件
获得独享锁是分两步完成的,先获得一个“临界锁”, 然后升级成独享锁。
临界锁的作用是防止生成新的共享锁。

(8) 将修改更新到磁盘
先更新到操作系统缓存,然后调用flush或sync写到磁盘文件中。

(9)删除回滚日志文件

(10) 释放锁,事务结束

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读