SQLite中并发读写的策略
发布时间:2020-12-12 19:04:42 所属栏目:百科 来源:网络整理
导读:我有一个SQLite数据库,我在进程A中保持打开和写入.我希望能够以只读方式从进程B使用它. 根据the document, 如果数据库是UNLOCKED,数据库可能不会被读取(或写入) – 不合适 如果数据库是SHARED,那么两个进程可以读取它,但是第一个不能写 – 不合适 如果进程想
我有一个SQLite数据库,我在进程A中保持打开和写入.我希望能够以只读方式从进程B使用它.
根据the document, >如果数据库是UNLOCKED,数据库可能不会被读取(或写入) – 不合适 过程A将会做很多小写,所以我不认为每次交易提交时都会生效. 我可以看到的唯一方法是让读者等到数据库进入UNLOCKED状态,在读取期间获得一个SHARED锁,然后释放它.同时进程A将要写入并且将被阻塞,直到锁可用 – 如果有的话(如果进程B崩溃了?).这意味着进程A和进程B将争用锁–B想要SHARED并且A需要EXCLUSIVE,这将减缓事情,甚至导致并发问题. 有没有办法实现我的同时写作和阅读的目的? 使用 WAL mode.它支持并发读者和一位作家.(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容