Lobsters 已迁移到 SQLite
Simon Willison13 天前
社区网站 Lobsters 已完成数据库迁移:从 MariaDB 转向 SQLite。
迁移背景
Lobsters 早在 2018 年 8 月就开始规划摆脱 MariaDB。最初的目标是 PostgreSQL,但在去年,项目维护者转而开始评估 SQLite。
这个周末,迁移工作完成。根据项目讨论中的反馈,当前运行情况已经足够稳定,SQLite 很可能会成为该站点接下来的长期架构。
迁移后的运行情况
迁移后的 Lobsters Rails 应用运行在单台 VPS 上。当前数据库大致包括:
- 主内容 SQLite 数据库文件:约 3.8GB
- 缓存数据库:约 1.1GB
- 队列数据库:约 218MB
rack_attack数据库:约 555MB,仍在增长,用于 Rack::Attack 中间件,以阻止和限流滥用请求
项目维护者反馈称,SQLite 的表现“非常好”:
CPU 使用率下降,内存使用率下降,网站至少在个人体验上更快;等 MariaDB 所在 VPS 下线后,VPS 成本可降至原来的一半。
代码变更规模
本次 SQLite 迁移由 Thomas Dziedzic 提交的迁移 PR 完成,变更规模包括:
- 30 个提交
- 涉及 188 个文件
- 新增 735 行
- 删除 593 行
该迁移工作还建立在此前多个相关 PR 的基础之上。
值得关注的地方
这个案例说明,对于一定规模的社区网站而言,单服务器加 SQLite 仍然可能是一种可行架构。Lobsters 的迁移结果并不能直接推出所有应用都适合 SQLite,但它为 Rails 应用、社区站点和中小规模 Web 服务的数据库选型提供了一个有参考价值的实践样本。
