实例详解MySQL占用内存过大解决方法

文 / @WordPress主题

MySQL是一种常用的关系型数据库管理系统。但是随着数据的增加,MySQL占用的内存也会越来越大。这对于一些小资玩家来说,服务器数量和内存是有限的,内存占用过大会影响系统的稳定性和性能。下面介绍一种解决MySQL占用内存过大的方法。

1. 找到配置文件

Windows上的配置文件默认位置是:C:\ProgramData\MySQL\MySQLServer8.0\my.ini

CentOS7上的配置文件默认路径是:/etc/my.cnf

2. 修改配置文件

找到并修改以下三个参数:

table_definition_cache:修改为400。可以存储在定义缓存中的表定义数(来自.frm文件)。如果使用大量表,可以创建大型表定义缓存以加快表的打开速度。与普通的表缓存不同,表定义缓存占用更少的空间,并且不使用文件描述符。最小值和默认值均为400。

table_open_cache:修改为256。MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。所有线程的打开表数。增加该值会增加mysqld所需的文件描述符的数量。因此,您必须确保在[mysqld_safe]部分的变量“open_files_limit”中将允许打开的文件量设置为至少4096。

performance_schema:修改为off。用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况,关闭之后可以节省开销,不会使server的行为发生变化。

3. 重启MySQL

Windows上以管理员身份启动控制台,输入net stop mysql,然后再输入net start mysql。重启之后MySQL占用的内存应该会降低。

CentOS7上控制台输入service mysqld restart即可重启。如果不行的话,可以试试/etc/init.d/mysqld restart这个指令。

注意事项:

1. 这种方法是通过降低性能来换取内存,适用于请求不是特别高的情况。

2. 如果对吞吐量要求比较高的情况,需要根据实际请求进行调整。

总之,通过修改MySQL的配置文件可以减小其占用的内存,提高系统的稳定性和性能。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。