主题
并发与锁机制
SQLite 采用多种锁机制管理并发访问,确保数据在多线程和多进程环境下的安全性。
锁类型
- 共享锁(SHARED LOCK):允许多个读操作同时进行。
- 保留锁(RESERVED LOCK):表示将进行写操作,但不阻止其他读操作。
- 排他锁(EXCLUSIVE LOCK):完全独占,防止其他读写操作。
并发模型
- 读操作可并发执行。
- 写操作需要排他锁,写入期间阻塞其他操作。
- SQLite 使用数据库级锁,写操作时整个数据库文件被锁定。
事务隔离
SQLite 默认隔离级别是 SERIALIZABLE,确保事务完整执行,避免脏读和不可重复读。
提升并发
- 使用 WAL(Write-Ahead Logging)模式提升写并发能力:
sql
PRAGMA journal_mode = WAL;
WAL 允许读取和写入并发进行,适合高并发场景。
合理理解锁机制,有助于设计高效稳定的 SQLite 应用。