linux – MySQL能否有效利用64 GB RAM?

我们遇到了一个问题,即查询一个大约有5000万行的表,并且索引大小为4 GB(表大小约为6 GB)会导致数据库服务器交换内存,并显着减慢速度.我很确定这与超出的临时表大小有关,并且它被交换到磁盘.

如果我将数据库服务器从32 GB RAM升级到64 GB RAM,我想知道MySQL数据库是否能够充分利用这个额外的内存而不是交换.我已经完成了一些变量(例如KEY_BUFFER_SIZE等),它们似乎支持超过64 GB的设置值.但是,MySQL文档说tmp_table_size最大为4 GB.

那么内存升级是否值得呢? “查询 – 大表”问题会从中受益,还是因为4 GB的限制而无济于事?我知道可能有其他解决方案,比如重组表格以不同的方式进行分区等等……但是如果不改变表格的任何内容,额外的内存会有帮助吗?

此外,一般情况下,当从32 GB移至64 GB RAM时,MySQL是否还有其他与内存无关的变量?

我们使用64位linux(Ubuntu)作为我们的数据库服务器.

谢谢,
盖伦

解决方法

如果你正在使用InnoDB,那么设置的最重要的变量是innodb_buffer_pool_size.我会将其设置为大约80%的系统内存.一旦你在一些使用后缓存热身,你最活跃的数据(工作数据集)将在内存中(innodb_buffer_pool_size),你对它的操作应该非常快.凭借64GB的内存,你绝对可以在那里体验到很多.内存对于数据库服务器来说总是一个好买的.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...