我们有一台 Windows Server 2008 R2。它有 24GB RAM 和 2.926 Mhz、8 个核心、8 个逻辑进程。
我们有一个大型 MySQL 数据库,执行某些查询需要花费大量时间。但在运行查询时,我观察到它不是利用全部资源。我想,如果我让 MySQL 利用服务器上的最大资源,它可以减少执行时间。
如何才能让我的 MySQL 服务器以健康的方式利用最大资源?
答案1
在执行此操作之前,您需要确保瓶颈不是您的磁盘。我知道您在问题中指出 mySQL 服务器正在利用所有资源,但如果您只是检查任务管理器,您只能看到 CPU 和 RAM 的使用情况,这并不能提供完整的信息。
很多时候,MySQL 似乎没有对您的服务器造成压力的原因是它的运行速度与硬盘允许的速度一样快...毕竟,CPU 处理信息的速度只能与硬盘检索信息的速度一样快,而由于其机械特性,硬盘通常是机器中最慢的部分。
打开资源监视器(不仅仅是人们通常使用的任务管理器)并检查您的磁盘是否被 100% 使用,否则使用您的 MySQL 实例将不会做任何事情。
如果您可以确认您的驱动器没有得到充分利用,那么我们可以考虑优化 MySQL。可能最简单、最简单的方法(无需浏览所有配置文件)是使用类似MySQL 调谐器这是一个免费的,并将大大减少优化所需的时间。
如果您的磁盘受到敲击,甚至可能值得运行一下,看看是否可以从中挤出更多。
最后 - 我不知道您重建机器的能力如何 - 但我经常看到人们在 RAID 5 中构建 SQL 服务器。Raid 0+1(条带和镜像)是让 mySQL 运行的最快方式,同时保留磁盘上的冗余度,但是,这需要大量磁盘进行镜像。投资更快的磁盘也可能是值得的... 15l 而不是 10k,或者如果您有钱的话,SSD。
希望这可以帮助。