我正在Windows 2003计算机上的单个CPU上运行MySQL 5.0。 我正在考虑添加另一个处理器来提高性能,因为服务器上的某些应用程序在数据库请求发生时正在减速。 MySQL能够连载两个cpus的负载吗?
MySQL服务器肯定是multithreading的。 每个查询都是在单个线程中执行的。 在大多数情况下,“缓慢”问题不是由于缺乏处理能力,而是缺乏内存和/或适当的索引。 在查询运行时,系统会将数据caching在RAM中,当RAM用完时,操作系统开始使用交换空间进行补偿。 交换…很慢。
解决scheme可包括:
有大量的variables来看待。 有完整的学位基于正确的数据库pipe理。 这不是一个简单的“翻转这个开关”问题/答案。 您应该聘请一位顾问或定期处理这类问题的人。
****编辑****我提到的解决scheme没有特定的顺序。 没有一个能够解决你的问题的魔法弹。 解决你的问题可能涉及我提到的所有3个以及其他选项。 我的列表不完整,可以很容易地添加到。 还应该考虑Memcaching,集群和其他许多选项。
我对你有好消息和坏消息
MySQL服务器是multithreading的
MySQL 5.5之前的InnoDB存储引擎和MySQL 5.1的InnoDB插件(从MySQL 5.1.38开始)不是multithreading的。
请升级到MySQL 5.5。 一旦升级到MySQL 5.5或Percona Server 5.x,您仍然必须为InnoDBconfiguration多个核心活动。
我在DBA StackExchange中已经写了几十次了。 这里仅仅是less数:
Sep 20, 2011 : 多核心和MySQL性能 Sep 12, 2011 : 可能使MySQL使用多个核心 May 26, 2011 : 关于单线程与multithreading数据库的性能 从这些文章中,您将会了解到InnoDB必须经过适当的调整才能获得更多的内核。