我在具有 4 个 CPU(Linode 4096)的 Debian GNU/Linux 机器上使用 MySQL 服务器,并且在重载(在一天中)时存在性能问题,但机器没有超载,只有查询很慢。
我可以使用哪些其他数据库来使用这 4 个 CPU?我读到 MySQL 只使用一个。有 SQL dababse 还是我需要使用 NoSQL?大多数查询都是选择。
我在具有 4 个 CPU(Linode 4096)的 Debian GNU/Linux 机器上使用 MySQL 服务器,并且在重载(在一天中)时存在性能问题,但机器没有超载,只有查询很慢。
我可以使用哪些其他数据库来使用这 4 个 CPU?我读到 MySQL 只使用一个。有 SQL dababse 还是我需要使用 NoSQL?大多数查询都是选择。
你问错了问题。找出性能瓶颈是什么,而不是寻找可以更好地利用您明显拥有的资源(CPU 能力)的数据库服务器。
我不知道你在哪里
read that MySQL use[s] only one [CPU]
,但你的来源是错误的,至少对于任何现代版本的 MySQL 都是如此。您的性能问题来自其他原因。我的钱花在糟糕的索引设计上。尝试让 MySQL解释为什么它很慢......
这个问题的有趣之处在于 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 没有帮助。