什么数据库服务器将受益于 4 个 CPU

jcu*_*bic 0 mysql performance sql database linode

我在带有 4 个 CPU (Linode 4096) 的 Debian GNU/Linux 机器上使用 MySQL 服务器,并且在重载(在一天​​的中间)上存在性能问题,但机器没有过载,只是查询很慢。

我可以使用哪些其他数据库来使用这 4 个 CPU?我读到 MySQL 只使用一个。是否有 SQL dababs 或者我需要使用 NoSQL 吗?大多数查询都是选择。

Sve*_*ven 14

你问错了问题。找出性能瓶颈是什么,而不是寻找能够更好地利用您显然拥有足够资源(CPU 能力)的数据库服务器。

  • 这可能是 (A) 慢 / 过载 / baddisc 子系统(不,2tb 磁盘对于数据库工作很慢,抱歉)和 (B) 不允许高效查询执行的坏索引的组合。对于 A - 请注意,SSD 比高端光盘快 100 倍,高端光盘比 2TB 最终用户光盘快 2-3 倍。(40.000 IOPS、450 IOPS,最大大约 250)。 (3认同)

vor*_*aq7 10

我不知道你在哪里read that MySQL use[s] only one [CPU],但你的来源是错误的,至少对于任何现代版本的 MySQL。您的性能问题来自其他方面。我的钱花在了糟糕的索引设计上。

试着问MySQL中EXPLAIN为什么它的速度慢...


Rol*_*DBA 5

这个问题的有趣之处在于 MySQL 5.0 中的 InnoDB 是单线程的。MySQL 5.1.38 的 InnoDB 插件、MySQL 5.5 和 Percona 的 XtraDB 中有一些新选项,它们实际上具有使 InnoDB 使用更多 CPU 的设置。

我在 DBA StackExchange 中写到了这个:

不幸的是,人性使我们忘记完全配置数据库选项。通过尽职调查,您可以让 InnoDB 使用多个 CPU。

关于这个问题,所有数据库都可以从 4 个 CPU 中受益。在 MySQL 的情况下,除非您调整 InnoDB,否则操作系统和缓冲区会获得更多荣誉。

如果你的数据库全是MyISAM,我深表歉意。120 个 CPU 对 MyISAM 没有帮助。