简介

估计有很多开发,或者刚刚接触MySQL数据库的运维人员,不太清楚,如何去计算MySQL数据库占用内存总大小。
估计有时候,还会奇怪,明明设置的buffer pool size不大,数据库却因为操作系统内存不足,导致MySQL数据库进程被系统自动kill掉了。
下面就来给你一一揭晓答案

MySQL数据占用内存

MySQL数据库占用操作系统内存,主要分为两部分

  • 第一部分为:innodb存储引擎占用的buffer pool size,一部分为myism存储引擎占用的内存大小
  • 第二部分为:MySQL数据库应用会话占用的内存大小

MySQL数据库内存计算公式

1.buffer pool内存占用计算方式
buffer pool目前主要有innodb和myism2个存储引擎,还有一个是redo日志占用内存大小,innodb_log_buffer_size

mysql> SELECT ( @@innodb_buffer_pool_size->          + @@innodb_log_buffer_size->          + @@key_buffer_size ) / 1024 / 1024 AS MEMORY_MB;
+--------------+
| MEMORY_MB    |
+--------------+
| 584.00000000 |
+--------------+
1 row in set (0.00 sec)

2.MySQL数据库会话占用内存大小
可以使用下面的公式计算一个会话占用内存的大小

mysql> SELECT ( @@read_buffer_size + @@read_rnd_buffer_size->          + @@sort_buffer_size + @@tmp_table_size->          + @@join_buffer_size + @@binlog_cache_size ) / 1024 / 1024 AS Session_MB;
+-------------+
| Session_MB  |
+-------------+
| 16.90625000 |
+-------------+
1 row in set (0.00 sec)

在这里需要注意,有时候,因为你的数据库整体性能下降之后,应用可能会有突然激增很多数据库连接,可能会造成操作系统的内存不足,而导致被系统自动kill掉进程。所以在设计数据库的时候,一定要考虑数据库承载的最大连接数。

计算所有连接数占用的总内存大小。

先查询出数据库有多少会话
mysql> select count(*) from INFORMATION_SCHEMA.PROCESSLIST;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)根据会话数去乘一个会话占用内存的大小,最后得到的就是会话占用的内存总大小。

参考链接 :

如何计算MySQL数据库占用内存 :
https://mp.weixin.qq.com/s/_aOCYw0IxJDEjXWOZRPV4w

如何计算MySQL数据库占用内存相关推荐

  1. mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决

    本文主要向大家介绍了线上MySQL数据库机器内存爆掉原因分析与解决,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 现象: 阿里金融某业务的MySQL机器的内存每隔几天就会增长,涨 ...

  2. mysql占用内存过高_mysql数据库占用内存过高解决办法

    top命令查看系统的实时负载, 包括进程.CPU负载.内存使用等等: 直接输入top命令 PID:PID进程 USER:用户 PR:优先级 NI:nice值,负值表示高优先级,正值表示低优先级 VIR ...

  3. paip mysql 5 6 数据库 占用 内存 过多 的 解决方案

    paip.mysql 5.6 占用 内存 过多 的 解决方案 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.cs ...

  4. mysql 5.6 数据库 占用 内存 过多 的 解决方案

    mysql 5.6 占用 内存 过多 的 解决方案 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.ne ...

  5. paip.mysql 5.6 数据库 占用 内存 过多 的 解决方案

    paip.mysql 5.6 占用 内存 过多 的 解决方案 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.cs ...

  6. mysql 引起服务器死机_MSSQL数据库占用内存过大造成服务器死机问题的解决方法...

    使用MSSQL的站长朋友都会被MSSQL数据库吃内存的能力佩服得五体投地,一个小小的网站,运行若干天之后,MSSQL就会把服务器上所有的内存都吃光,此时你不得不重新启动一下服务器或MSSQL来释放内存 ...

  7. mysql数据库占用太多的CPU_mysql数据库CPU使用率过高解决方案

    压测时,经常会出现mysql数据库CPU使用率过高,下面介绍一下简单的问题定位方法: 1.确定是否有慢sql语句: 1)登录数据库服务器,连接数据库:执行命令:mysql -uroot -p 密码 2 ...

  8. mysql内存占用过高_mysql占用内存过高排查

    排查点:数据库配置,数据分区.定时事件.存储过程 触发原因:java服务莫名的挂掉了 机器信息:centos 7 ,腾讯云服务器1核2G,只安装了mysql和运行一个java服务. 经过排查过程: 查 ...

  9. 你所不知道的MySQL数据库性能优化方案

    一.MySQL数据库引擎的选择 1.1 概述 MySQL数据库中最重要的一个概念就是数据库引擎,不同的数据库引擎的工作原理存在很大差异最终造成MySQL数据库服务的性能差异. 例如如果数据库引擎需要支 ...

最新文章

  1. 爱数的诗和远方:云端数据运营服务
  2. VR+监狱,分分钟让犯罪分子重新做人
  3. Mysql高性能优化技能总结
  4. 将连接数据库的地址写在web.config里面,后台直接调用
  5. 矢量绘图工具:Sketch 78 for mac
  6. java web 学习网站_我的第一个javaweb学习----模仿社区网站(三)
  7. Anaconda下载和安装指南(超全)
  8. Redis之连接redis服务命令
  9. 直流可逆调速控制系统matlab,逻辑无环流直流可逆调速系统的Matlab仿真
  10. python模拟ios点击_使用Xcode + Python进行IOS运动轨迹模拟
  11. Win11磁盘清理怎么没有了?Win11磁盘清理在哪打开?
  12. ContentProvider
  13. 面试常见问题之网络基础
  14. 移动端(一)—— 移动端概念
  15. 从零起步,新时代大学生选择创业还是工作?
  16. 小学计算机二课活动记录,小学教研活动记录
  17. cad标注样式快捷键_说说CAD尺寸精度设置的两种方法!
  18. 处理器与大力神杯,夺冠或许并不需要11人
  19. 攻防世界 web高级 leaking
  20. 音响DIY入门需要掌握的20种电路及简介

热门文章

  1. CVPR 2022 论文和开源项目合集
  2. NLP工具包(Albert+BiLSTM+CRF)
  3. Deep Learning with PyTorch 必看教程集(4本)
  4. jquery如何拿到一个对象_jQuery 怎么获取对象
  5. vivox50pro鸿蒙系统,钱包卡包都承包 vivo X50 Pro+多功能NFC玩法多
  6. silverlight安装后仍提示未安装_CAD提示“许可管理器不起作用或未正确安装”?来,我来教你方法...
  7. 制打印如下所示的n行数字金字塔_关于央行数字货币的技术猜测
  8. maya多象限uv不显示_CG制作软件这么多,你都会哪些?
  9. HandlerThread原理和实际应用
  10. zabbix自定义监控Key值