Lobsters 完成迁移到 SQLite

Simon Willison··作者 Simon Willison

关键信息

Lobsters 自 2018 年起就一直计划离开 MariaDB,最初考虑的是 PostgreSQL,但在去年改为研究 SQLite。当前线上部署包括一个约 3.8 GB 的主内容数据库,另有 1.1 GB 的缓存数据库、218 MB 的队列数据库,以及一个仍在增长的 555 MB rack_attack 数据库,用于拦截和限流恶意请求。

资讯摘要

Lobsters 是一个社区新闻网站,最近完成了一个酝酿已久的迁移:它已经从 MariaDB 切换到 SQLite。这个迁移计划早在 2018 年 8 月就已提出,当时项目原本打算迁移到 PostgreSQL。到了去年,团队改变方向,开始研究 SQLite 作为替代方案。文中提到的那个周末,他们终于完成了迁移,并认为新架构已经稳定到足以成为网站未来的长期方案。

实际效果也相当明显:CPU 占用下降了,内存占用下降了,网站体感更快,而且在 MariaDB 服务器下线后,VPS 费用预计能减少大约一半。现在 Lobsters 的 Rails 应用只运行在一台单独的 VPS 上,而不再依赖更复杂的多服务器架构。主 SQLite 数据库文件大小约为 3.8 GB,此外还单独使用了缓存数据库、队列数据库,以及一个用于拦截和限流恶意请求的 rack_attack 数据库。此次迁移由 Thomas Dziedzic 提交的大型 pull request 实现,该 PR 增加了 735 行、删除了 593 行,包含 30 个 commit,影响了 188 个文件,并建立在此前多个 PR 的基础之上。

资讯正文

<strong><a href="https://lobste.rs/s/ko1ji1/lobste_rs_is_now_running_on_sqlite">lobste.rs 现在运行在 SQLite 上</a></strong>

社区网站 <a href="https://lobste.rs">Lobsters</a> 自 <a href="https://github.com/lobsters/lobsters/issues/539#issuecomment-4959857588">2018 年 8 月以来</a>一直在规划从 MariaDB 迁移出去——最初的目标是 PostgreSQL,但去年他们决定改为<a href="https://github.com/lobsters/lobsters/issues/539#issuecomment-2964114295">研究 SQLite</a>。

本周末他们完成了迁移,现在认为系统已经足够稳定,看起来这将是该网站今后长期采用的永久架构:

<blockquote>

<p>SQLite 看起来表现非常出色:CPU 使用率下降了,内存使用率也下降了,至少对我来说网站似乎更灵敏了;等把 mariadb 的 VPS 关掉后,VPS 成本大约能减半</p>

</blockquote>

Lobsters 的 Rails 应用现在运行在一台单独的 VPS 上,主要内容用的 SQLite 数据库文件大约为 3.8GB。<a href="https://lobste.rs/s/ko1ji1/lobste_rs_is_now_running_on_sqlite#c_c9ydhs">另外还有</a>一个 1.1GB 的缓存数据库、一个 218MB 的队列数据库,以及一个仍在增长中的 555MB rack_attack 数据库,该数据库供 <a href="https://github.com/rack/rack-attack">Rack::Attack</a> 中间件用于阻止和限流恶意请求。

在相关讨论串以及 Thomas Dziedzic 提交的这份 <a href="https://github.com/lobsters/lobsters/pull/1927">SQLite 迁移 PR</a> 中还有更多细节:该 PR 在 30 次提交和 188 个文件中新增了 735 行、删除了 593 行。这个 PR 还建立在此前的 <a href="https://github.com/lobsters/lobsters/pull/1705">#1705</a>、<a href="https://github.com/lobsters/lobsters/pull/1871">#1871</a> 和 <a href="https://github.com/lobsters/lobsters/pull/1924">#1924</a> 这些 PR 的基础之上。

这确实是一个非常有用的案例研究,也很好地提醒了我们:到了 2026 年,单台服务器加上 SQLite 也能做成很多事情。

来源与参考

  1. 原始链接
  2. lobste.rs is now running on SQLite

收录于 2026-07-15