我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql内存相关的配置

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql内存相关的配置

一、mysql为每个链接分配的和内存

以下四个参数是为每个链接(线程)分配的大小。(一百个链接,可能会分配一百次)

1、sort_buffer_size:

排序缓冲区的大小。不管需要多少,都是一次性分配该参数值大小的内存。

  • max_length_for_sort_data: 用于指定排序数据的最大长度,根据需要排序的字段定义的大小总和与这个配置值进行比较。
2、join_buffer_size:

连接查询缓冲区的大小,默认值是256k。为每个连接查询分配该参数值大小的内存。

  • 较大的 join_buffer_size 可以容纳更多行,减少对被驱动表的全表扫描次数。
3、read_buffer_size:

MyISAM 表进行全表扫描时分配的查询缓冲区大小。有查询需要时分配一次性参数值大小的内存;参数值大小必须是4k的倍数。

4、read_rnd_buffer_size:

索引缓冲区的大小(回表查询 ID 的缓存)。有查询需要时分配,只分配所需的大小而非整个参数值大小。

二、InnoDB 缓冲池(Innodb_buffer_pool)

1、Innodb_buffer_pool_size:

该参数控制InnoDB 缓冲池的的大小,在MySQL 5.7之前修改该值需要重启服务器。

  • 对于单独的 MySQL 服务器,可以设置为:总内存 - (每个线程所需内存 * 链接数)- 系统保留内存。
  • 根据手册建议,设置为总内存的75%。
  • 当缓冲池很大时,重启服务器需要较长时间来刷新脏页。
2、Buffer Pool中的LRU链表:
  • innodb_old_blocks_pc:该参数控制了InnoDB缓冲池中旧数据(已经不活跃)所占的比例。默认值为37,表示旧数据在缓冲池中的比例为37%。较低的值会导致更多的旧数据被保留在缓冲池中,可能增加缓冲池的使用率,但也可能影响新数据的读取性能。较高的值则允许更多的新数据进入缓冲池,但也可能导致频繁的缓冲池刷新和旧数据的淘汰。根据实际情况,可以适当调整这个值来平衡性能需求和缓冲池利用率。
  • innodb_old_blocks_time:该参数定义了多长时间内被认为是“旧数据”。默认值为0,表示没有时间限制。当一个页面在缓冲池中处于未被访问状态的时间超过设定的阈值时,该页面将被视为旧数据并可能被替换出缓冲池。通过设置适当的阈值,可以确保缓冲池中保留的是最常访问的数据,避免过多的旧数据占用缓冲池资源。
3、change buffer:

是一种用于提高写入性能的内存数据结构。它用于延迟和合并磁盘上的物理页更改。当进行INSERT、UPDATE或DELETE操作时,Change Buffer会将修改记录到内存中,然后再批量地将这些修改应用到磁盘上的数据页。

  • innodb_change_buffering: 这个参数控制Change Buffer的工作方式。它有三种可选值:

                all:表示所有的数据修改都会被缓冲,默认值。
                none:表示不使用Change Buffer。
                inserts:只缓冲INSERT操作。

  • innodb_change_buffer_max_siz: 这个参数定义了Change Buffer的最大大小,以字节为单位。默认值为25%的缓冲池大小。根据系统的写入负载和可用内存,可以适当调整此参数以控制Change Buffer的大小。
4、innodb_max_dirty_pages_pct:

这个参数定义脏页在缓冲池中所允许的最大比例,以百分比表示。默认值为 75%。

  • 当脏页所占的比例超过的设定值时,InnoDB 将开始触发后台线程将脏页刷新到磁盘上的数据文件中,以确保缓冲池中的脏页数量维持在可接受的范围内。
  • 较低的 innodb_max_dirty_pages_pct 值可以使脏页更快地写入磁盘,从而减少系统崩溃或意外停机时数据丢失的风险,但可能会牺牲一些写入性能。
  • 较高的 innodb_max_dirty_pages_pct 值可以提高性能,因为不必频繁写入磁盘,但可能会增加系统恢复时间并增加数据丢失的风险。

三、 MyISAM 缓冲池

1、key_buffer_size:

该参数是 MyISAM 缓冲池的大小,只缓存索引。即使所有表都使用 InnoDB 引擎,也要设置该值,因为 MySQL 系统表仍在使用 MyISAM 引擎。

2、可以通过执行以下查询获取 MyISAM 表索引所占空间的大小:

SELECT sum(index_length) from information_schema.tables where ENGINE='myisam';

来源地址:https://blog.csdn.net/jkzyx123/article/details/131574985

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql内存相关的配置

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MyBatis一级与二级缓存相关配置

mybatis-plus是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生,这篇文章带你了解Mybatis的一级和二级缓存
2023-01-03

python boost相关配置

1、首先python 是需要是--enable-unicode=ucs4编译的2、boost 编译的时候 相关python的编译变量填清楚了如:./bootstrap.sh --with-icu --with-python=/usr/loc
2023-01-31

MySql相关内容记录

在Centos中采用RPM安装时需要注意: 需要安装Server 和 Client的两个rpm安装包,只安装Mysql Server的RPM包,在安装完成后,执行mysql -uroot -p命令后会出现mysql命令无法找到的提示。 在安装Mysql
MySql相关内容记录
2022-04-30

AndroidStudio里面gradle相关配置

对我自己掌握的关于gradle相关的知识进行一个整理。 下面是Android studio里面比较重要的gradle文件。会逐一的进行解析。 1. build.gradle(模块里面) 里面的具体内容参考我之前写的一篇博客:详解build
2023-08-17

关于MySQL Memory存储引擎的相关知识

关于Memory存储引擎的知识点 Memory存储引擎在日常的工作中使用的是比较少的,但是在MySQL的某些语法中,会用到memory引擎的内存表,它有以下几个特点: 1、内存表的建表语法是create table … engine
2022-05-27

C++固定内存块分配器相关知识点有哪些

这篇文章主要讲解了“C++固定内存块分配器相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++固定内存块分配器相关知识点有哪些”吧!回收内存存储内存管理模式的基本哲学是在对象
2023-06-17

Mariadb之日志相关配置 - Linux

前面我们聊到了mariadb的事务,以及事务隔离级别,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13198186.html;今天我们来聊一聊mariadb的日志相关话题;mariadb日志有6种,分别是查询日志(ge
Mariadb之日志相关配置 - Linux
2017-09-14

git通过内网代理访问外网的相关配置方法

这篇文章主要介绍了git通过内网代理,访问外网的相关配置,配置git代理以http代理为例,给大家详细讲解,需要的朋友可以参考下
2023-05-19

编程热搜

目录