MySQL占用内存过大如何解决

MySQL占用内存过大如何解决

前言

对于部分小资玩家来说,服务器数量和内存往往是很有限的,像我个人的服务器配置就是2核4G5M。

4G内存对于Java玩家来说,真的不大,开几个中间件+自己的微服务真的还蛮挤的,然后又摊上MySQL这个大冤种。我本机上的MySQL仅仅只占几M内存(虽然我不怎么用,但是本机MySQL确实是开着的):

MySQL占用内存过大如何解决

而服务器的则要占400M,怎么说其实没什么吞吐量,纯粹是自己玩一玩,这内存占用属实有点吃不消啊。。。

MySQL占用内存过大如何解决

解决方案

了解到可以通过修改配置来减小MySQL的内存占用,便尝试了一下,并进行了记录。由于我同时有两台服务器,一台装的是windows service 2016,还有一台装的是CentOS7,两台情况都是差不多的,故同时做两份记录,供大家参考。

找到配置文件

Windows Service 2016

配置文件的默认位置是C:ProgramDataMySQLMySQL Server 8.0my.ini,如果有修改,则根据自己的实际情况找到。

MySQL占用内存过大如何解决

CentOS7

配置文件的默认路径在/etc/my.cnf,如果有修改,则根据自己的实际情况找到。

修改配置文件

Windows上可以用Ctrl + F 进行搜索,Linux上可以用 ‘/key’ 进行搜索,不会的话可以参考一下百度。

我们需要找到并修改的东西一共有三个:

  1. 找到 table_definition_cache,我们修改为400

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

  2. 找到 table_open_cache,我们修改为256

    MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。

    官方解释为:所有线程的打开表数。增加该值会增加mysqld所需的文件描述符的数量。因此,您必须确保在[mysqld safe]部分的变量“open files limit”中将允许打开的文件量设置为至少4096。

  3. 找到 performance_schema ,修改为off

    如果找不到这个的话,直接在合适的地方加上 performance_schema = off 即可。

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

修改完之后保存退出。

重启MySQL

Windows Service 2016

以管理员身份启动控制台,输入 net stop mysql,然后再输入 net start mysql。

重启之后还占62M。

MySQL占用内存过大如何解决

CentOS7

控制台输入 service mysqld restart 即可重启。

MySQL占用内存过大如何解决

如果不行的话,可以试试 /etc/init.d/mysqld restart 这个指令。

重启之后占用92M,比Windows那台多点。

MySQL占用内存过大如何解决

到此,关于“MySQL占用内存过大如何解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

文章标题:MySQL占用内存过大如何解决,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/25941

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年9月16日 下午10:21
下一篇 2022年9月16日 下午10:23

相关推荐

  • windows edge浏览器js错误表示如何解决

    edge浏览器js错误表示解决方法: 1、进入edge浏览器,点击右上角三个点依次打开“更多工具—>使用Internet explorer打开”。 2、点击右上方的齿轮设置,点击“Internet 选项”。 3、在Internet选项中选择“安全”点击下方的“自定义级别”。 4、下滑找到“脚本…

    2022年9月8日
    22400
  • windows驱动精灵drivergenius删不了如何解决

    解决方法: 1、右击桌面任务栏,点击“任务管理器”。 2、右击“drivergenius”,选择“结束任务”。 3、右击此电脑,选择“管理”。 4、点击“服务和应用程序”的下拉,选择“服务”。 5、在右侧文件中找到“Drivergenius core service”双击打开。 6、将“启动类型”改…

    2022年9月10日
    15200
  • MySQL学习之日期函数怎么使用

    获取 系统时间 函数 “NOW()” 函数 能够获得当前系统日期和时间,格式如下:“YYYY-MM-DD hh:mm:ss” (这里的小时单位是 24 小时制) “CURDATE()” 函数 能够获取到当前系统的日期,格式如下:“YYYY-MM-DD” “CURTIME()” 函数 能够获得当前系统…

    2022年9月2日
    11400
  • 电脑蓝屏代码0x000009c如何解决

    解决方法: 方法一: 1、首先重启电脑,按住“F8”进入以下界面,然后进入“安全模式” 2、要是可以进入安全模式,就在其中将最近安装的驱动或软件全部卸载。 3、还有可能是因为系统中了病毒,所以可以尝试在安全模式中清理一下病毒。 4、如果进不去安全模式,那就是内存或硬件出现问题,就需要用下面的方法来解…

    2022年9月16日
    16300
  • windows谷歌浏览器黑屏如何解决

    解决方法: 1、右击浏览器,点击“快捷方式”。 2、随后将代码“–disable-gpu –disable-software-rasterize”黏贴到“目标”中。 3、随后打开浏览器,点击右上角的“三个点”再点击“设置”。 4、点击左侧的系统既可看到“使用硬件加速模式”的开…

    2022年9月8日
    11300
  • how2heap注意点有哪些

    first-fit 我的理解是分割unsortedbin里面第一个大于要分配的chunk,但是实际上并不是这样 测试程序 #include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int…

    2022年9月15日
    8200
  • sqlserver怎么导出mdf

    sqlserver导出mdf操作方法: 1、打开sql server选择要导出的数据库,右击“任务—>分离”。 2、进入后可以看到要分离成mdf的文件的数据库。 3、勾选分离数据库的删除和更新,点击“确定”。 4、sql server就成功导出mdf和ldf文件了,默认导出的路径在 C:Pro…

    2022年9月8日
    1.2K00
  • 电脑svchost占用内存过高怎么解决

    svchost占用内存过高解决方法: 1、找到计算器,右击打开,选择【管理】。 2、然后在左侧框中,选择【服务和应用程序】中的【服务】 3、然后在右侧中,寻找到【Superfetch】,然后双击打开。 4、在【启动类型】中,更改到【手动】。 5、然后【确定】,就可以了。 6、重启电脑以后,svcho…

    2022年9月2日
    17400
  • SQL窗口函数怎么使用

    什么是窗口函数 SQL窗口函数为在线分析处理(OLAP)和商业智能(BI)提供了复杂分析和报表统计的功能,例如产品的累计销售额统计、分类排名、同比/环比分析等。这些功能通常很难通过聚合函数和分组操作来实现。 窗口函数(Window Function)可以像聚合函数一样对一组数据进行分析并返回结果,二…

    2022年9月21日
    8500
  • 如何进行移动app安全评估检测技术分析

    由于现今的网络技术日益发达,安卓 APP 的安全也有很多隐患,这些都需要我们不断地去注意,从而提高其安全性。人们基于系统程序、系统数据、基础业务的安全性以及应用程序出现的漏洞这几个方面,来不断地完善并且构成一个更加安全、稳定、完整的移动 APP 监测系统来确保移动 APP 的安全性,其将作为“恶意伤…

    2022年9月15日
    23200
联系我们
站长微信
站长微信
分享本页
返回顶部