sqlite3多线程操作问题

在项目中使用sqlite3,有时会报database is locked

两种方式

1、多线程读,多线程写,只使用共同一个数据库连接,即使用同一个SQLiteHelper连接,调用sqlite3_busy_timeout

2、多线程读,单线程写,每个线程使用各自独立的数据库连接,但是需要开启wal模式,以开启数据库连接池

开启wal通过如下语句

sql 复制代码
pragma synchronous=NORMAL;
pragma journal_mode=WAL;
pragma wal_autocheckpoint=5000;
相关推荐
玖雨y1 分钟前
【DDIA】存储和查询
数据库·后端·存储·ddia
蒸蒸yyyyzwd9 分钟前
redis实战学习笔记p1-12
数据库·笔记
菜鸟小九10 分钟前
redis原理篇(五种数据结构)
数据结构·数据库·redis
Henry Zhu12312 分钟前
数据库:事务管理详解
数据库
kangzerun16 分钟前
SQLiteManager:一个优雅的Qt SQLite数据库操作类
数据库·qt·sqlite
用户57573033462420 分钟前
AIGC 时代数据库革命:告别手写 SQL,用自然语言驾驭 SQLite
sqlite
troublea20 分钟前
ThinkPHP6快速入门指南
数据库·mysql·缓存
数据知道21 分钟前
MongoDB 元素查询运算符:使用 `$exists` 检查字段是否存在及处理缺失字段
数据库·mongodb
科技D人生23 分钟前
PostgreSQL学习总结(17)—— PostgreSQL 插件大全:25款核心扩展解锁数据库全能力
数据库·postgresql·pgsql 插件·postgresql插件大全