原创: 管长龙 译
作者:Peter Zaitsev

虽然我们经常在较大规模的系统上运行 MySQL ,但我们常常在最小的云实例上运行MySQL,或者只在我们的笔记本电脑上运行它。在这些情况下,MySQL 8 和 MySQL 5.7 的内存消耗非常重要。

在比较 MySQL 8 和 MySQL 5.7 时,您应该知道 MySQL 8 会使用更多内存。对运行相同轻量级工作负载的 MySQL 8 和 MySQL 5.7(实际上它们是 Percona Server 版本)的 1GB VM 进行基本测试。

我看到以下 vmstat 输出:

MySQL 5.7 vmstat 输出

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st4  0  65280  71608  58352 245108    0    0  2582  3611 1798 8918 18  9 11 33 304  0  65280  68288  58500 247512    0    0  2094  2662 1769 8508 19  9 13 30 293  1  65280  67780  58636 249656    0    0  2562  3924 1883 9323 20  9  7 37 274  1  65280  66196  58720 251072    0    0  1936  3949 1587 7731 15  7 11 36 31

MySQL 8.0 vmstat 输出

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa st9  1 275356  62280  60832 204736    0    0  2197  5245 2638 13453 24 13  2 34 273  0 275356  60548  60996 206340    0    0  1031  3449 2446 12895 25 11 10 28 267  1 275356  78188  59564 190632    0    1  2448  5082 2677 13661 26 13  6 30 254  1 275356  76516  59708 192096    0    0  2247  3750 2401 12210 22 12  4 38 24

正如您所看到的,MySQL 8 使用了大约 200MB 的 swap 分区,并且使用更少的系统缓存,被分配更多内存。

如果我们查看“top”命令的输出,我们会看到:MySQL 5.7

MySQL 8.0

这也展示出 MySQL8 使用的更多常驻内存和虚拟内存。特别是“可怕的”虚拟内存,因为它远远超过这些 VM 上可用的 1GB 物理内存。当然,虚拟内存使用(VSZ)是现代应用程序实际内存需求的一个很差的指标,但它确实证实了更高的内存需求这个事。

实际上,正如我们从 “vmstat” 输出中所知道的那样,即使没有太多的“空间”,MySQL 8 和 MySQL 5.7 都不会在低负载下使用 swap 分区。如果您有多个连接或希望在同一个 VM 上运行某些应用程序,则可以使用 swap(如果未启用交换,则可能导致 OOM)。

这是一个有趣的实验,能看看我有多少可以驱动 MySQL 5.7 和 MySQL 8 的内存消耗。以下是我用于此测试的配置:

[mysqld]
innodb_buffer_pool_size=256M
innodb_buffer_pool_instances=1
innodb_log_file_size=1G
innodb_flush_method=O_DIRECT
innodb_numa_interleave=1
innodb_flush_neighbors=0
log_bin
server_id=1
expire_logs_days=1
log_output=file
slow_query_log=ON
long_query_time=0
log_slow_rate_limit=1
log_slow_rate_type=query
log_slow_verbosity=full
log_slow_admin_statements=ON
log_slow_slave_statements=ON
slow_query_log_always_write_time=1
slow_query_log_use_global_control=all
innodb_monitor_enable=all
userstat=1

总结

在开发环境中迁移到 MySQL 8 时,请记住,使用相同的设置需要比 MySQL 5.7 配置更多的内存。

mysql5驱动_技术分享 | MySQL 8 和 MySQL 5.7 在小型设备的内存消耗分析相关推荐

  1. mysql 带宽字段_技术分享 | 网络带宽如何影响 MySQL 性能

    作者:Vadim Tkachenko 翻译:管长龙 网络是数据库基础架构的主要部分.但是,通常性能基准测试是在本地计算机上完成的,客户端和服务器并置在一起.这样做是为了简化结构并排除一个以上的变量(网 ...

  2. mysql安全无密码登录_技术分享 | 安全地无密码登录 MySQL

    有人说最好的密码就是你不用记忆的.auth_socket 插件和 MariaDB 的 unix_socket 让这种想法在 MySQL 上变成可能. 这两个插件虽然不是新发布,但在 MariaDB 1 ...

  3. mysql5.7复制集_技术分享 | 克隆:更优雅的创建 MySQL 实例副本

    背景 大多情况下,需要可靠而有效地克隆 MySQL 实例数据.这包括 MySQL 高可用的解决方案,其中需要在将实例加入组复制集群之前配置实例,或者在经典复制模型中将其添加为 Slave. 为复制拓扑 ...

  4. mysql优化说出九条_技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢?

    原标题:技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢? 背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 ...

  5. mysql内连接简写_技术分享 | MySQL 的 join_buffer_size 在内连接上的应用

    本文详细介绍了 MySQL 参数 join_buffer_size 在 INNER JOIN 场景的使用,OUTER JOIN 不包含.在讨论这个 BUFFER 之前,我们先了解下 MySQL 的 I ...

  6. mysql 客户端_技术分享 | MySQL 客户端连不上(1045 错误)原因全解析

    作者:Carlos Tutte.Marcos Albe 翻译:管长龙 在我们学习 MySQL 或从事 MySQL DBA 工作期间,时常会遇到:"我尝试连接到 MySQL 并且收到1045 ...

  7. mysql 做回归模型_技术分享 | 我对 MySQL 隔离级别的剖析

    隔离级别的产生 在串型执行的条件下,数据修改的顺序是固定的.可预期的结果,但是并发执行的情况下,数据的修改是不可预期的,也不固定,为了实现数据修改在并发执行的情况下得到一个固定.可预期的结果,由此产生 ...

  8. mysql5.7.16 表空间加密_技术分享 | InnoDB 表空间加密

    本文目录: 一.表空间加密概述 应⽤场景 加密插件 加密限制 注意事项 二.加密表空间 安装加密插件 配置表空间加密 查看表空间被加密的表 三.更新 master encryption key 四.导 ...

  9. linux配置usb主从_技术 | 手把手教你搭建MySQL主从架构

    黑马程序员 微信号:heiniu526 传智播客旗下互联网资讯,学习资源免费分享平台 1 什么是MySQL的复制 MySQL的主从复制可以实现将数据从一台数据库服务器(master)复制到一台或多台数 ...

最新文章

  1. 如何识别出轮廓准确的长和宽
  2. CF888G Xor-MST (01字典树+MST)
  3. 机器人产业这些领域大有可为
  4. java练习:打印 数字1、2、3、4的组合,不能以4开头,1和3不能相邻,且数字不能重复
  5. csharp通过dll调用opencv函数,图片作为参数
  6. 项目实战-微信扫码登录
  7. 使用Webtask.io创建一个简单的REST API端点
  8. 计算机音乐绅士教程,教你学唱薛之谦的《绅士》,这个技巧很实用值得收藏!...
  9. Node.js新手教程——怎样实现文件上传功能
  10. windows 安装jenkins
  11. Error connecting to node kafka1:9092 (id: 0 rack: null) ,marathon docker镜像添加hosts
  12. linux 定时任务方法,Linux设置定时任务方法步骤
  13. centos yum清华镜像
  14. 学生管理系统:含注册登录操作
  15. 我是如何降低项目的沟通成本?
  16. 猴子选大王(c语言)
  17. AcWing 616. 两点间的距离
  18. Python根据csv绘制多折线图(内含批量读取+自定义坐标标签+阴影处理)
  19. ss570122的雕刻机制作过程
  20. 使用python画图案例大全【画玫瑰花、樱花树、小黄人等】

热门文章

  1. cannot set up a python sdk 3.8_anaconda+pycharm环境下创建新的虚拟环境报错Cannot set up a py...
  2. slf4j + log4j2配置日志引擎
  3. linux指令list by time,tar - Linux 常用命令
  4. linux线程切换回调函数,linux C线程退出回调函数
  5. mysql表结构定义_Mysql表结构定义及相关语法
  6. springcloud整合php,详细讲解springcloud的组件之RestTemplate集成的Ribbbon
  7. 用74ls90组成二十四进制计数器_CD4017是什么?十进制计数器分频器CD4017的逻辑功能呢?...
  8. 4 转推流格式_ppt 转 pdf怎么转?这个宝藏技巧不会太亏了!
  9. html css 走马灯,纯css 实现跑马灯效果
  10. Git 操作总结整合篇