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;
相关推荐
霖霖总总几秒前
[小技巧71]从回滚到 MVCC:全面解析 MySQL Undo Log 机制
数据库·mysql
知识即是力量ol1 分钟前
口语八股:MySQL 核心原理系列(一):索引篇
java·数据库·mysql·八股·索引·面试技巧
funnycoffee1232 分钟前
word vba提取所有表格到1个新的文档中
数据库·word
野犬寒鸦4 分钟前
缓存与数据库一致性的解决方案:实际项目开发可用
java·服务器·数据库·后端·缓存
倔强的石头1067 分钟前
KingbaseES 文档数据实践:MongoDB 兼容性评估与替换落地
数据库·mongodb·kingbase
Re.不晚1 小时前
Redis——主从复制
数据库·redis·缓存
小高不会迪斯科8 小时前
CMU 15445学习心得(二) 内存管理及数据移动--数据库系统如何玩转内存
数据库·oracle
e***8909 小时前
MySQL 8.0版本JDBC驱动Jar包
数据库·mysql·jar
l1t9 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
失忆爆表症10 小时前
03_数据库配置指南:PostgreSQL 17 + pgvector 向量存储
数据库·postgresql