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

SQLite是否锁定数据库文件读取?

发布时间:2020-12-12 19:17:44 所属栏目:百科 来源:网络整理
导读:我正在调查SQLite作为存储引擎,我很想知道SQLite是否锁定数据库文件读
我正在调查SQLite作为存储引擎,我很想知道SQLite是否锁定数据库文件读取。

我关心的读性能,因为我计划的项目将有很少的写,但许多读。如果数据库锁定,是否有措施可以采取(如内存缓存)来减轻这个?

从 Wikipedia page:

Several computer processes or threads may access the same database without problems. Several read accesses can be satisfied in parallel.

更确切地说,从FAQ:

Multiple processes can have the same database open at the same time. Multiple processes can be doing a SELECT at the same time. But only one process can be making changes to the database at any moment in time,however.

然而,对数据库的单个写入会锁定数据库一段时间,所以没有什么可以访问它(甚至没有读取)。详细信息可以在File Locking And Concurrency In SQLite Version 3找到。基本上读取数据库没有问题,除非有人想立即写入数据库。在这种情况下,DB在执行该事务所需的时间内被独占锁定,并且该锁随后被释放。然而,关于在PENDING或EXCLUSIVE锁定的时候对数据库的读取操作究竟是什么的细节是很少的。我的猜测是,他们或者返回SQLITE_BUSY或阻塞,直到他们可以读取。在第一种情况下,不应该太难以再次尝试,特别是如果你期望几乎没有写入。

(编辑:李大同)

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

    推荐文章
      热点阅读