从MongoDB到PostgreSQL:数据零丢失、成本砍半( 三 )


迁移后 , 我们观察到了许多好处:

  • 平台性能显著提升,主要归功于连接查询优化 。使用 MongoDB 时,平台常常通过低效的聚合查询和多次网络跳转来实现所需功能 。例如 , 由于我们核心数据的关系特性,经常需要执行很多 $lookup 操作来模拟 SQL 中的连接;此类操作效率低下,同时通常需要相应地扩展数据库和应用程序实例 。迁移到 PostgreSQL 后,我们避免了这些低效操作,也降低了50%的数据库支出 。
  • 目前平台采用了更好的数据验证方式,植根于数据库层而不是应用层 。MongoDB 被设计为无模式,因此它依赖 Mongoose 的框架来定义数据类型、必需字段和验证规则 。有了 PostgreSQL,我们就不会再面临以往 Mongoose 权限之外访问或修改数据库时会出现的数据不一致问题 。
  • 最后也是最重要的是,我们相信 Infisical 现在更易于自行托管,客户无需额外的配置开销就能够进行 POC,例如处理 MongoDB 中的副本集以启用事务功能 。
总体而言,考虑到当前的目标、任务范围及执行效果,我们认为此次迁移非常成功 。我们打算在今后获得更多数据后公布更具体的结果 。
结论
从 MongoDB 迁移到 PostgreSQL 从开始就不是一个容易的决定 。总而言之,我们花了 3 到 4 个月的时间来执行该计划,并围绕为什么这样做、如何做等问题进行仔细规划和讨论,然后小心翼翼地执行这一切 。
对于阅读本文的任何人 , 我强烈建议在尝试这样一项大型工作之前,深入思考用例和实施方案 。总之,我非常高兴一切都按计划进行,我们能够提供如此巨大的更新,这将为 Infisical 用户带来巨大的变化 。
非常感谢 Akhil Mohan 对迁移工作的大力支持,以及Infisical 公司其他所有人对迁移过程的协助 。
作者丨Tony Dang 编译丨onehunnit
来源丨infisical.com/blog/postgresql-migration-technical




推荐阅读