我们应该升级 MySQL、迁移至 PostgreSQL 还是转向云端?

我们应该升级 MySQL、迁移至 PostgreSQL 还是转向云端?

我们的 ERP 系统使用内部 MySQL 5.5 服务器。

问题

  • 事情进展缓慢,老板们也开始恼火
  • 我们与基础设施服务提供商的 SLA 即将结束。
  • 我们的小型开发团队需要接管数据库维护:
    • 数据库集群
    • 数据库备份
    • 数据库崩溃恢复

不足之处:

  • DB 未规范化
  • DB 是 MyISAM(没有行级锁定,因此调用非常慢)
  • 数据库为 228533.13 MB
  • 我们的 ERP 软件是:
    • PHP
    • 巨大的
    • 写得不好
    • 没有数据库抽象层
    • 业务逻辑嵌入在 SQL 中

按重要性排序的目标

  1. 消除对服务提供商的依赖
  2. 迁移至云或做好迁移准备
  3. 最大程度降低商业风险
  4. 使可维护
  5. 使快速
  6. 尽量减少开发团队的糟糕表现

我们能想到的方法

我们正在权衡以下利弊:

  • 切换到 PostgreSQL
  • 升级 MySQL
  • 转向一些基于云的服务
  • 寻找我们尚不知道的神奇解决方案

请求帮助

你们能评论一下吗?我们正处于调查阶段,希望在未来几年内做出正确的决定。

我们期待并鼓励大家对我们的困境开玩笑和嘲讽。^^

答案1

我的第一个建议是改进软件,但我猜你已经在做了,否则就不行了。我建议扩展。再添加 1 或 2 个服务器,更改几行代码,瞧,你就有 3 个主 MySQL 服务器了。

答案2

这是资源问题:领域知识(DBA、系统管理员)、金钱和时间。

由于您必须重构应用程序,请尝试外包数据库和服务器维护,至少在您有时间自己处理之前。使用云数据库提供商或购买新硬件并外包 DBA/sysadmin。

由于数据库速度较慢,强力修复需要使用 SSD 磁盘和更多 RAM。

PHP 版本是 7.2+ 吗?最新版本的性能有显著的提升。

在 PHP 应用程序中使用缓存,例如 memcache。

最后,找到瓶颈。

数据库写入?更快的磁盘,InnoDB 还是 Postgres

DB 读取?索引、重写查询、缓存结果

数据库临时表?为数据库添加 RAM

SQL 查询速度慢?重写它,添加索引

CPU?PHP升级,重写SQL查询,更强大的服务器

相关内容