运行 DB2 而不是 MySQL 是否需要更多的系统资源?

运行 DB2 而不是 MySQL 是否需要更多的系统资源?

我需要将我的 Web 应用程序从 MySQL 转换为在 DB2 上运行。我需要提前知道我是否需要高规格的服务器来确保 Web 应用程序的运行速度与现在在 MySQL 上的速度相同。

该应用程序是一款非常依赖数据库的数据分析应用程序,具有浏览器界面。它现在仅使用大约 20% 的可用 CPU 能力和 30% 的服务器内存。如果转换为 DB2,是否会占用更多 CPU 或内存?我需要高规格的服务器吗?

我只是想了解一下在其他所有条件保持不变(数据库大小、流量等)的情况下,从 MySQL 到 DB2 的转换是否需要服务器升级的总体感觉。

答案1

您使用 isam 还是 innodb?

通常,DB2 所需的系统资源比当前版本的 mysql 少。但是,如果您追求的是性能,并且数据库的大小不是太大,那么您可能实际上想要考虑切换到 postgresql,因为它的功能远远少于 mysql(即臃肿)。有时您需要 mysql,但如果不需要,通常最好使用 pgsql。

答案2

我认为运行 mysql 还是 DB2 不会有很大区别。但是,除非您亲自尝试,否则无法确定性能。我建议您在与当前系统类似的测试环境中尝试。

答案3

如果您启用了 DB2 的自调优内存管理功能 (STMM),那么只要 DB2 之外的进程以良好的方式分配和释放内存,DB2 应该能够相当高效地利用服务器上的内存。STMM 会调整几个高影响内存缓冲区和堆的大小,以适应不断变化的数据库工作负载。此功能在 DB2 的最近几个主要版本中已默认启用,并且通常达到的内存设置与 DB2 专家手动调整的数据库几乎相同。STMM 的一个警告是,它在设计上禁止其内存大小发生剧烈波动,这意味着 STMM 可能需要进行几次增量调整以适应数据库利用率的剧烈飙升或下降。DB2 提供了丰富的内置监控功能,可帮助您跟踪内部内存结构的效率和增长模式,因此您可以快速了解特定工作负载的“正常”状态。

在 CPU 方面,对良好性能和可扩展性的最大风险之一是扫描,即使所有必需的数据页都已缓存在缓冲池内存中,扫描也会消耗 CPU 周期。随着表的增长和查询的扩大,了解索引的工作原理以及何时将使用或忽略特定 SQL 语句的索引尤为重要。有时,不可接受的扫描不是因为索引不佳或连接谓词不佳,而是因为 RUNSTATS 收集的表的基数和分布统计信息已过时,这会误导 DB2 的基于成本的查询优化器低估使用部分或完整扫描的后果。db2expln 实用程序将通过考虑当前统计信息来显示建议查询的访问计划。在运行时,还可以监视读取(扫描)的行数与实际选择的行数,这可以让您了解在获得工作负载的结果集之前发生了多少次流失。

相关内容