掘金· 高调的涵涵·· 9 天前精选AI 评分78
实测五个进程同时写 SQLite:busy_timeout 设 0 时 1 万行只落库 800 行
五个进程同时写 SQLite,谁在丢数据
AI 导读
作者用 5 个进程各写 2000 行实测 SQLite 多进程写入,busy_timeout=0 时 100 个事务有 92 个直接返回 database is locked,1 万行只落库 800 行且全部来自同一个进程。
借鉴点
能直接抄走一套 SQLite 多进程写入配置,BEGIN IMMEDIATE 加 100–1000 行批量提交、busy_timeout 与 synchronous 逐连接设置、重试带随机抖动;代价是 busy_timeout 设大后最坏阻塞会叠到几十秒,需自加总时限。
来源:掘金 · juejin.cn