MySQL 5.6内存占用过高解决方案

20131225225414_75247

距离MySQL 5.6正式发布已经有比较长的时间了,目前Oracle官网上的最新GA版本MySQL server也为5.6。但reizhi在安装配置后却发现其内存占用居高不下,无论如何调整cache甚至禁用InnoDB都不能解决。由于VPS仅有1GB内存,在开启常用的Web服务之后,无力再为MySQL提供400MB以上的物理内存。

通过网络爬文,MySQL 5.6相比于前代GA版本性能提升显著,但默认缓存设置对于小型站点并不合理。通过修改my.ini文件中的performance_schema_max_table_instances参数,能够有效降低内存占用。

默认my.ini文件位置:C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.6

MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下;在Linux下叫my.cnf,该文件位于/etc/my.cnf。

以下是5.6默认的设置

performance_schema_max_table_instances 12500
table_definition_cache 1400
table_open_cache 2000

修改参数:

performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256

保存之后重新启动MySQL服务,其内存占用即可从400MB以上降低至40MB左右。

参考资料:

http://blog.csdn.net/zhulinu/article/details/42424303
http://www.111cn.net/database/mysql/59659.htm
http://blog.csdn.net/wulantian/article/details/41119755