
按当前 SQLite + PHP + 现有缓存结构,单机普通配置(4C8G / SSD / Nginx + PHP-FPM)大致是:
稳定并发请求:80–150
短时峰值:200–300
写入/事务并发:5–15,再高会撞 SQLite 单写锁,出现
busy_timeout排队游客页面缓存命中高时:300–500 并发请求
登录用户多、详情页多、频繁写:30–80 并发请求
同时在线:可撑几百到一两千,但真正并发请求数远低于在线数

按当前 SQLite + PHP + 现有缓存结构,单机普通配置(4C8G / SSD / Nginx + PHP-FPM)大致是:
稳定并发请求:80–150
短时峰值:200–300
写入/事务并发:5–15,再高会撞 SQLite 单写锁,出现 busy_timeout 排队
游客页面缓存命中高时:300–500 并发请求
登录用户多、详情页多、频繁写:30–80 并发请求
同时在线:可撑几百到一两千,但真正并发请求数远低于在线数
| 页面静态缓存 | 游客请求(300~500 并发)—— 命中就绕过数据库 |
| 32 桶分片 | 写入并发(5~15)—— 打散写锁 |
| 3 队列 | 写入并发 + 异步任务 —— 进一步打散 |
| WAL 模式 | 读写并发 —— 读不阻塞写 |
busy_timeout=5000 | 写冲突 —— 排队而不是崩 |
main_index 小文件 | 登录用户列表页 —— 可常驻页缓存 |
| keyset 分页 | 深翻页 —— 不随数据量恶化 |
| 外置正文 | 详情页 —— 桶文件小,读得快 |
| LRU 连接池 | 高频请求 —— 减少连接建立开销 |
你可以看看这几处:
SplitDB 介绍:https://www.flinthub.top/thread/7
后台 SplitDB 设置页面
后台队列页面
数据库这块我做过 19 万帖子 / 16 万回复 / 5 万用户 的实测,性能与数据量无关(300 帖和 19.2 万帖的 warm 渲染都是 7~20ms)。这是已验证的事实。
你担心的「并发」—— 我算过一笔账:
日活 2000 → 峰值约 2 QPS → SplitDB 压力不到上限的 1/10
日活 2 万 → 峰值约 17 QPS → 仍在上限内
日活 20 万 → 峰值约 275 QPS → 接近上限,但那时候换机器 + 调优,比换 MySQL 划算
而且你的场景(读书网站、读多写少、数据量可控)比论坛还更轻。
我的建议:先按现在跑。 如果你在实际使用中发现了具体问题(慢、报错、卡顿),把现象发我,我们一起看。
如果将来真的跑到 SplitDB 的边界(比如日活 10 万+),我会给你出个升级方案 —— 那时候是「升级硬件 + 调优」,不是「推翻重来」。
我们这个数据库是按「集群式单机方案」设计的 —— 现在还没到它的边界。
请 登录