[SQLite] 分享适合高并发场景的 SQLite 设置

·

最近写了个对 sqlite 数据库读写都比较大且频繁的程序,踩了一些坑。最后用了如下配置最大化 sqlite3 的性能。

PRAGMA journal_mode = WAL;
PRAGMA busy_timeout = 5000;
PRAGMA synchronous = NORMAL;
  1. journal_mode = WAL: 支持读写同时进行。高并发下提升最明显
  2. busy_timeout:可以缓解同时多写入时的 SQLITE_BUSY 报错。5000 是五秒。
  3. PRAGMA synchronous = NORMAL; 减小默认同步频率

内存够用的话还可以设置这两个选项加大内存缓存。

PRAGMA cache_size = 1000000000;
PRAGMA temp_store = memory;

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *