Lobste.rs is now running on SQLite
3 hours ago
- #Database Migration
- #SQLite
- #Performance Optimization
- SQLite迁移已成功部署于周六,取得了积极成果,包括CPU和内存使用率降低、网站性能提速以及VPS成本减少。
- 此次迁移项目因K1收购后对MariaDB未来的担忧而启动,最初计划转向PostgreSQL,但最终出于实用和简洁的考虑选择了SQLite。
- 共进行了多次拉取请求尝试,首次部署因全表扫描和n+1查询导致的性能问题而失败,这些问题在后续尝试中得到修复。
- 第二次部署于7月11日成功实施,经过充分测试和修复后,网站良好应对了周一流量高峰,且小问题得到迅速解决。
- 关键教训包括SQLite的并发模型(通过WAL模式实现多读取、单写入)、性能调优的重要性,以及使用如SQLite这类简单方案相比PostgreSQL等复杂数据库的优势。
- 备份策略采用restic执行夜间任务,部署则使用Hatchbox结合Capistrano实现零停机更新,并利用SQLite的本地文件系统和WAL模式支持并发访问。
- 社区贡献得到认可,此次迁移被视为确保网站长期可持续性的一步,SQLite尽管在并发性方面曾受质疑,但已证明能满足网站需求。