前段时间,我创建了一个并发度很高的 REST 服务。
即使在 SQL 查询优化之后,这给了我更大的思考时间窗口,我开始担心该服务的 MySQL DB 服务器。
服务:
- 多个 Apache 服务器,用于负载平衡,在 NGINX 反向代理后面处理高并发
- PHP Opcode 缓存和 Memcached 数据缓存
- 在 64 位操作系统上具有 InnoDB 表模式的 MySQL 数据库服务器
- SQL 查询是存储过程
我在相对较快的时间内可能面临的问题是:
- MySQL DB 服务器达到了数 TB 数据的存储限制
- MySQL DB 服务器达到专用 CPU/RAM/TCP 的最大并发查询数
我找到了哪些解决方案并正在考虑:
- MySQL 集群,但看起来它不支持 Integrity(FK?)
- 用于负载平衡的多个复制 MySQL 服务器(缺点:存储过多)
- 分片(缺点:在这一点上,当我需要尽快找到解决方案时,对我来说看起来很复杂)
- 切换到 PostegreSQL 并针对此特定 SQL Server 进行更多调查
对于卸载 MySQL 服务器,您有什么建议,最好的选择?如果我什么都不做,它最终会崩溃。
提前致谢!