【问题标题】:Sqlite : Modifying locking criteria inside begin - commitSqlite:在开始 - 提交中修改锁定条件
【发布时间】:2015-03-19 17:39:02
【问题描述】:

根据sqlite documentation,当我们使用begin - commit 使用延迟事务时,数据库在第一次写入后被锁定。

而且很可能这个锁在事务提交之前一直存在。因此,如果我做了begin 并进行了第一次写入,而commit 在 180 秒后出现,我的数据库将一直锁定到此时。因此,直到此时我才能从另一个线程执行写入操作。

有什么方法可以告诉 Sqlite 在commit 之前不要持有锁,并且只有在事务中写入时才获取锁?这样我就有机会在该事务期间从另一个线程并发写入。或者有什么解决办法?

我在嵌入式环境中使用C Sqlite 库。

【问题讨论】:

    标签: multithreading sqlite


    【解决方案1】:

    允许他人写入您正在读取的数据会导致数据不一致。

    要同时允许写入者和读取者,请启用WAL mode

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多