先说结论:在资源受限的低配云服务器场景下,更推荐使用PostgreSQL作为博客数据库。

背景

  • 云服务器:腾讯云2核2G 轻量云服务器
  • 博客服务:Halo 2.20.13
  • 原数据库版本:MySQL 8.1.0
  • 目标数据库版本: PostgreSQL 17.5

迁移原因:在该设备上运行的高内存占用服务只有两个,就是Halo博客和MySQL服务器,这俩的占内存用相对其它服务是断层的。Halo的日常占用在468MiB左右,MySQL也接近500MiB,让云服务器本就捉襟见肘的内存日常占用率都在89%左右,在进行特殊操作时更是达到95%上下。

过去两年间时常因为配置调整、应用变更等场景导致内存爆炸,然后死机。

变更内容

  • 新安装Halo框架及PostgreSQL,配置数据库连接
  • 初始化应用并恢复原博客内容备份
  • 更新博客内主题、插件等以匹配框架版本

变更效果

迁移后系统运行流畅,内存使用率由原先的近 95% 降至约 71%,整体下降 约 25%,并保持稳定。
PostgreSQL日常运行占用内存在80MiB左右,远低于MySQL,大幅降低内存崩溃风险。

内存变化

PostgreSQL 的内存使用策略更加保守,其 buffer 管理和连接池策略对低内存场景更为友好,相比 MySQL 默认的多线程结构和缓存策略更适合轻量级负载。更多SQL理论数据推荐参考其他博主的文章,放在参考阅读中了。

参考阅读