我在带有 4 个 CPU(Linode 4096)的 Debian GNU/Linux 机器上使用 MySQL 服务器,在负载过大时(中午)会出现性能问题,但机器并没有过载,只是查询很慢。
我可以使用哪些其他数据库来使用这 4 个 CPU?我读到 MySQL 只使用一个。有 SQL 数据库吗,还是我需要使用 NoSQL?大多数查询都是选择。
答案1
你问错了问题。找出性能瓶颈,而不是寻找能够更好地利用你显然拥有的资源(CPU 能力)的数据库服务器。
答案2
答案3
这个问题的有趣之处在于,MySQL 5.0 中的 InnoDB 是单线程的。MySQL 5.1.38 的 InnoDB Plugin、MySQL 5.5 和 Percona 的 XtraDB 中都有新选项,实际上都有让 InnoDB 使用更多 CPU 的设置。
我在 DBA StackExchange 中写到了这一点:
- https://dba.stackexchange.com/a/2948/877
- https://dba.stackexchange.com/a/5670/877
- https://dba.stackexchange.com/a/5968/877
不幸的是,人性让我们忘记充分配置数据库选项。只要尽职尽责,您就可以让 InnoDB 使用多个 CPU。
关于这个问题,所有数据库都可以从 4 个 CPU 中受益。对于 MySQL,除非您调整 InnoDB,否则操作系统和缓冲区会获得更多赞誉。
如果您的数据库全部都是 MyISAM,我深表同情。120 个 CPU 对 MyISAM 没有帮助。