首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL服务器中增加内存使用以提高速度?

如何在MySQL服务器中增加内存使用以提高速度?
EN

Server Fault用户
提问于 2009-07-20 01:46:44
回答 2查看 139.5K关注 0票数 35

我有一个Windows2008服务器,内存为8GB,运行IIS7和MySQL。我一直在跟踪服务器上的内存、cpu和磁盘的使用情况,我发现MySQL只使用250 on的内存,使得磁盘非常繁忙,尽管我有大量的空闲内存。

在Server中,我可以轻松地设置我希望它使用的内存量,我正在MySQL中寻找相同的设置。

如何配置MySQL以使用更多的内存并减少cpu和磁盘的使用?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2009-07-20 02:12:27

table_cache是要更改的最有用的配置指令。每次MySQL访问一个表时,它都会将该表加载到缓存中。如果您有大量的表,那么缓存它们会更快。

通过运行以下命令查看服务器变量:

代码语言:javascript
复制
show status;

并查看变量open_tables。如果这与您的table_cache值相同,并且opened_tables不断上升,那么您需要在配置文件中增加table_cache值。通过在高峰时期对这些变量进行实验,您可以找到一个平衡。您希望对其进行配置,以便在高峰时,即使服务器已经运行了很长一段时间,也会出现少量的opened_tables

key_buffer_size也是一个很好的实验变量。这个变量会影响索引缓冲区的大小,使这个变量变大会增加MySQL的索引处理速度。您可以再次使用show variables;命令查看变量,并将key_read_requestskey_reads进行比较。理想情况下,您希望这两个变量之间的比率尽可能低,并且可以通过增加key_buffer_size的大小来做到这一点。如果您将这个变量设置得更高,那么您将有更少的直接到磁盘的写入和读取,这是您主要关心的问题。

票数 25
EN

Server Fault用户

发布于 2009-07-20 01:58:46

您需要更改my.cnf文件中的值并重新启动MySQL,尽管在MySQL运行时也可以更改其中的许多值(“设置全局VARIABLE=value”)。

如果您有任何key_buffer_size表,那么您可能希望先考虑增加sort_bufferread_buffertable_cache,然后再考虑增加innodb_buffer_pool_size。其中的一些值,您可以增加很长的路(甚至两个数量级),特别是在您的硬件。MySQL的默认设置非常保守,似乎是针对大约十年前常见的混合用途桌面。哦,请注意,32位版本在使用2GB以上的RAM时会有问题。

有关更多信息和指导,请在MySQL手册中查看。

票数 6
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/42789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档