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;
相关推荐
全栈前端老曹6 分钟前
【Redis】发布订阅模型 —— Pub/Sub 原理、消息队列、聊天系统实战
前端·数据库·redis·设计模式·node.js·全栈·发布订阅模型
SQL必知必会7 分钟前
使用 SQL 构建转化漏斗
数据库·sql·数据分析
丿BAIKAL巛9 分钟前
Docker部署的Mysql数据库自动化备份
数据库·mysql·docker
爬山算法11 分钟前
MongoDB(11)MongoDB的默认端口号是多少?
数据库·mongodb
betazhou12 分钟前
Mongodb日志类型以及日志轮转
数据库·mongodb
一次旅行12 分钟前
接口自动化测试模板
数据库·python·pytest
想睡hhh24 分钟前
redis的高效工作方式
数据库·redis·缓存
、BeYourself26 分钟前
PostgreSQL 安装中文全文检索插件zhparser扩展
数据库·postgresql·全文检索
dishugj39 分钟前
【Oracle】Oracle rac1 节点ora.chad offline解决方案
数据库·oracle
木子020440 分钟前
oracle里面inner join 和left join 的区别
数据库·oracle