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

database – 如何在内存中的SQLite数据库上实现行级锁定?

发布时间:2020-12-12 23:42:29 所属栏目:百科 来源:网络整理
导读:我在内存模式下使用我的程序运行SQLite v3.7.17并使用共享缓存(如 Shared Cache And In-Memory Databases中所指定).我的程序是多线程的,所有这些线程都访问相同的内存数据库. 有没有什么方法可以配置或使用我的SQLite数据库,这样当两个线程在同一个表(但不同
我在内存模式下使用我的程序运行SQLite v3.7.17并使用共享缓存(如 Shared Cache And In-Memory Databases中所指定).我的程序是多线程的,所有这些线程都访问相同的内存数据库.

有没有什么方法可以配置或使用我的SQLite数据库,这样当两个线程在同一个表(但不同的行)上运行更新查询时,一个不等待另一个?也就是说,如何在内存数据库中实现行级锁定?

理论上这应该是可能的,因为我的SQLite数据不在文件中(因此文件系统写入不适用).

决定SQLite是否可以锁定行的不是文件系统.这是SQLite的架构.

甚至使用预写日志记录,you can only have one writer at a time.

Writers merely append new content to the end of the WAL file. Because
writers do nothing that would interfere with the actions of readers,
writers and readers can run at the same time. However,since there is
only one WAL file,there can only be one writer at a time.

SQLite3 has a kind of table locking now,但不是行锁定.

(编辑:李大同)

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

    推荐文章
      热点阅读