MySQL My.cnf参数梳理与延伸 (MYSQL 8 cache and buffer类)

news2024/11/17 16:15:37

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,(共1700人左右 1 + 2 + 3 + 4) 3群突破 490已关闭自由申请如需加入请提前说明,新人会进4群(210+)准备开5群,另欢迎 OpenGauss 的技术人员加入。

be4a844710be42d09916b076d322e1fc.png

最近人员变动,群主需要重新梳理一下MySQL的配置参数,方便后续的工作与标准化,没有小弟做了,自己就的上阵了。实话实说,最近一直忽视了MySQL所以有些知识的在从新拾起来。

鉴于MySQL 8 的一些参数的确由于版本的变动有很多变化,所以进行梳理。

1 cache 与 buffer 类

join_buffer_size

key_buffer_size 

metadata_locks_cache_size

open_files_limit

schema_definition_cache

table_definition_cache

table_open_cache

table_open_cache_instances

thread_cache_size

sort_buffer_size

select_into_buffer_size

read_buffer_size

read_rnd_buffer_size

preload_buffer_size

bulk_insert_buffer_size

innodb_buffer_pool_instances

innodb_buffer_pool_size

这个类型里面主要分成 MySQL 和 Innodb 的关于cache 或buffer有关的参数,下面逐一进行梳理

1  innodb buffer pool instances 这个参数实际上与你的内存与CPU 有关,本身这个参数用于指定缓冲池的数量,在具有多CPU和大量内存的情况下,为提供更好的并发性的情况下,将此设置为更多的数量有助于更好的利用多CPU操控缓冲池的问题。一般可以简单的认为这部分为 CPU的数量 - 2 。

2  innodb buffer pool size 这个参数实际上与你的内存在innodb buffer pool上的内存分配有关,基于数据库数据要加载到内存中处理的方式,这部分一般为整体物理内存的  65% - 70%。

3  join buffer size  这个参数的设置是针对数据在处理表连接情况下使用的缓冲区,在多表连接中存储使用到的表的数据缓冲在join buffer中提高多表数据处理中性能,减少物理磁盘空间驻留表数据的情况,默认这部分256KB,但基于一些MySQL 在承担一些OLAP 或程序开发不力导致的多表关联的情况,这里可以将这部分设置的更大一些比如  2MB 4MB。

4  key buffer size 这个参数比较特殊,他需要以4096的倍数进行增长,但基于MyISAM引擎的核心参数在MySQL8 中这个参数可以忽略了,但基于Mysql 8 一下的版本,基于系统表还是基于MyISAM数据库引擎的,基本以默认值即可。

b2251346ee4330f7a086160d3cc4c1c5.png

5  sort_buffer_size  这个参数是指定MySQL中的排序操作的缓冲区,主要在语句中出现ORDER BY 的语句来对搜取的数据进行缓存中的排序。默认大小256KB, 若大量的语句中都包含排序,和分页等部分,sort_buffer_size 可以考虑设置的大一些,提高类似语句的处理速度。

6  select_into_buffer_size  这个参数是在8.022 里面引入的,他提出的意义在于解决select into outfile , select into dumpfile 的数据导出中的问题,他解决了在快速写入数据中对于磁盘的消耗过多的问题,而将数据先驻留在磁盘缓冲中,在一次性的写入到磁盘中。同时他还替代了 read_buffer_size,也就是说在8.022 后的版本可以通过设置select_into_buffer_size 来替换read_buffer_size 的值。

read_buffer_size 这个参数在表中进行顺序扫描中定义为这个访问分配的表的缓冲大小,在进行大量顺序扫描的情况下,增加这个值有利于你的数据读取的速度。在实际的设置中他比 read_rnd_buffer_size的设置要小,基本为其的一半。如果经常进行数据导出或经常做一些顺序性的数据读取量大的业务,则可以调整此参数大一些。

8 read_rnd_buffer_size  这个参数与上面的参数最大的不同是服务的数据扫描方式不同,这里他们使用的是随机扫描,在进行一些非顺序扫描的方式中使用缓存来缓冲数据,如果在查询中多是通过主键查询的方式来获取数据可以提高这部分的缓存。

9 preload_buffer_size  这个参数主要控制顺序读取缓冲区大小,顺序读取是指以连续的顺序读取磁盘的数据库快,提高读取的性能。通常在提高大量连续读取磁盘的业务中,提高preload_buffer_size 有助于提高读取的效率。(在官网文档说明较少)

10 bulk_insert_buffer_size 这个参数主要控制MySQL 的数据插入缓冲区,经常批量导入数据的MYSQL 提高此值可以提高数据插入数据库的速度。默认值8MB,如果经常大批量的导入数据可以提高此值。

11 metadata_locks_cache_size 这个参数很少被提到,这个参数主要是提高metadata_locks_cache_size 决定了内存中维护元数据锁的数量,当发生元数据改变的时候,MySQL尝试获取元数据锁来组织其他对该元数据的操作,保证数据的一致性,提高这个值可以提高并发操作获取元数据锁的效率,减少锁的征用和等待,默认这个值为1024

12  open_files_limit  这个参数对于MySQL非常重要,他限制了服务器可以同时打开的文件数量,这里MySQL 每个SQL都会打开表文件,除此以为临时表文件,日志文件,所以这个值尽量设置的大一些,一般为MySQL 最大的链接* 2 ,但实际上有一些繁忙的系统这个值是还是不够,比如一个SQL可能关联了 5张表,这时就需要至少打开5个表文件。32768

13  table_definition_cache  主要是维护Mysql 表定义的缓存数量,较大的值可以提高对于表定义的缓存命中率,加快表的访问速度MySQL以下默认值400, 8.0 默认为2000  (32768)

b832858a1ce5455253875b5836f1585e.png

14  table_open_cache  这个参数主要的目标是在打开表后将表的元数据部分进行缓存,避免频繁打开和关闭表引起的性能问题,通过缓存,在用到的时候,直接通过缓存里面的数据来进行表的操作,更大的cache  有助于一些大表的打开速度提高。

15  thread_cache_size   (256)

在MySQL 处理客户请求的时候,会为客户创建一个新的连接来处理客户的请求,创建和销毁线程都是一项昂贵的操作,会消耗大量的系统资源和时间,thread_cache_size 决定了MySQL在内存中维护线程缓存的数量,较大值可以提高链接处理的速度,使得mysql不需要频繁的创建和销毁线程,在5.7 下默认值为0 , 在MYSQL 8.0 默认值为 9 

6c2d07379d55cc94f1f78bb3a1a566b1.png

16  schema_definition_cache

用于控制缓存存储在内存中的数据对象的元数据定义的信息存储,包含库,表,索引,列定义。在 MySQL中要访问这些数据库对象元数据定义信息时,MySQL会从磁盘加载这些信息,然后存储在内存中查询使用,schema_definition_cache 就是来存储这些信息的缓存默认2为 256 对于一些表数量多,字段多的数据库,提高这个值有利于对于表的统计信息的获取和处理。

join_buffer_size   2MB

key_buffer_size    默认值

metadata_locks_cache_size  默认值  1024

open_files_limit   655350

schema_definition_cache   256

table_definition_cache  32768

table_open_cache  32768

table_open_cache_instances  16

thread_cache_size  256

sort_buffer_size  2MB

select_into_buffer_size   1MB  (8.022 替换 read_buffer_size)

read_buffer_size  1MB

read_rnd_buffer_size  1MB

preload_buffer_size   32768

bulk_insert_buffer_size  32768

innodb_buffer_pool_instances  根据CPU有关

innodb_buffer_pool_size   75%

fd2843bbb0562bd9961ad93531e4a1b1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1211054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python兼职接单(非常详细)从零基础入门到精通,看完这一篇就够了

当下python需求量还是挺大的,对于想要做兼职的程序员还是挺友好的:起码不用愁找不到;目前来看,其兼职方向大致有三:开发、爬虫、数据分析。 就开发来说,目前python的轮子在Github上一抓一大把,…

数据结构笔记:R树

R-trees: a dynamic index structure for spatial searching 1984 1 介绍 R树可以看作B树再高维空间的扩展。它很好的解决了在高维空间搜索等问题。 采用了B树分割空间的思想,并在添加、删除操作时采用合并、分解结点的方法,保证树的平衡性R树就是一棵…

Nginx配置开启HTTPS

获取证书文件 Nginx 开启SSL server {listen 443 default ssl;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;proxy_set_header Host $host;ssl_certificate /usr/local/nginx/cert/server.pem;ssl_certificate_key /usr/local/ngin…

Sealos 云操作系统一键集成 runwasi,解锁 Wasm 的无限潜力

WebAssembly (通常缩写为 Wasm) 是一种为网络浏览器设计的低级编程语言。它旨在提供一种比传统的 JavaScript 更快、更高效的方式来执行代码,以弥补 JavaScript 在性能方面的不足。通过使用二进制格式,WebAssembly 能够提供比传统 JavaScript 更快的解析…

印刷企业使用数字工厂管理系统前后有什么变化

随着科技的飞速发展,数字工厂管理系统已经逐渐渗透到印刷企业的各个环节。本文将通过分析印刷企业在使用数字工厂管理系统前后的变化,探讨这一技术如何为印刷行业带来革新。 一、使用前的状况 在使用数字工厂管理系统之前,印刷企业的生产方式…

从理论到实践:深度解读BIO、NIO、AIO的优缺点及使用场景

文章目录 BIO优缺点示例代码 NIO优缺点示例代码 AIO优缺点示例代码 总结 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 BIO、NIO和AIO是Java编程语言中用于处理输入输出(IO…

一则DNS被重定向导致无法获取MySQL连接处理

同事反馈xwik应用端报java exception 获取MySQL连接超时无法连接到数据库实例 经过告警日志发现访问进来的IP地址数据库端无法被解析,这里可以知道问题出现在Dns配置上了 通过以上报错检查/etc/resolve.conf 发现namesever 被重定向设置成了114.114.114.114 域名 …

Java面试题(每天10题)-------连载(31)

多线程篇 注:今天只更新四题,明天就换别的了 1、concurrent包下有哪些类? ConcurrentHashMap、Future、FutureTask、AtomicInteger... 2、线程a、b、c、d运行任务,怎么保证当a、b、c线程执行完再执行d线程? 1 、 Cou…

AdaBoost:提升机器学习的力量

一、介绍 机器学习已成为现代技术的基石,为从推荐系统到自动驾驶汽车的一切提供动力。在众多机器学习算法中,AdaBoost(Adaptive Boosting的缩写)作为一种强大的集成方法脱颖而出,为该领域的成功做出了重大贡献。AdaBoo…

企业设备巡检的痛点和解决方案

在设备巡检过程中,企业常面临多种痛点。首先,信息管理不足是一个关键问题,企业往往缺乏全面、准确的设备信息记录,这导致巡检工作缺乏针对性和效率。其次,巡检流程的非标准化使得巡检结果出现不一致,重要的…

HTML5+CSS3小实例:炫酷的流边按钮

实例:炫酷的流边按钮 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content="wid…

妙手ERP本期功能优化:TikTok创建折扣活动可默认生成活动名称和时间、Shopee利润明细新增字段等

为了给卖家朋友带来更好的使用体验&#xff0c;更高效地运营跨境店铺&#xff0c;妙手ERP在上周优化了以下多项功能。 01、产品模块优化 全平台 - 批量编辑平台SKU增加翻译功能 TikTok - 创建折扣活动时&#xff0c;可默认生成活动名称和时间 02、订单模块优化 全平台 - 扫…

CleanMyMac X“断网激活”真的可以吗?

CleanMyMac X帮助Mac系统进行垃圾清理&#xff0c;清除多余的缓存、应用程序等&#xff0c;在提高工作效率上起了很大的作用。但是随着对软件的需求不断增加&#xff0c;很多人开始研究通过捷径破解正版软件&#xff0c;但是是否能成功呢&#xff1f;今天小编就为大家揭开“断网…

哪些方面的应用适合博捷芯双轴半自动划片机?

博捷芯BJX3666系列双轴半自动划片机可以应用于以下领域&#xff1a; 1. 集成电路制造&#xff1a;在集成电路制造中&#xff0c;划片机可以用来将芯片从晶圆上切割下来&#xff0c;以便进行封装和测试。此外&#xff0c;还可以用来对芯片进行划片分离加工&#xff0c;以得到所需…

格式工厂——万能格式转换器

很多时候&#xff0c;大家从网络上下载的文件不一定是自己想要的类型&#xff0c;比如flv等视频文件&#xff0c;而强行改文件后缀名只会造成文件格式错误&#xff0c;无法打开&#xff1b;而很多文件的格式并不能轻易转换&#xff0c;且很多渠道都需要收费。今天介绍的这款For…

【linux】centos7 yum安装nginx

查看系统中是否已安装 nginx 服务 yum list | grep nginx查看nginx运行进程 ps -ef | grep nginx添加源 rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 安装Nginx yum install -y nginx 查看nginx安装目录 find …

【23真题】懒得出题!连续两年试卷相同!

连续两年出题一样&#xff0c;老师都懒得出题的院校又被我抓到一所&#xff01;&#xff08;上次是天津工业22和21年一模一样&#xff09;&#xff0c;这次沈阳工业的老师多多少少改了几个数&#xff0c;但是也大差不差&#xff0c;考这所院校&#xff0c;猛刷真题&#xff0c;…

Elasticsearch的配置学习笔记

文/朱季谦 Elasticsearch是一个基于Lucene的搜索服务器。它提供一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口&#xff0c;Elasticsearch是用Java语言开发的。 关于Elasticsearch系列笔记&#xff0c;主要从Elasticsearch的配置、核心组件、架构设计、使…

黔院长 | 《黄帝内经》——气厥论!

当我们体内的寒热之气厥逆&#xff0c;也就是气息上逆犯冲&#xff0c;就会为患多端&#xff0c;导致寒热之气在体内不断传变&#xff0c;我们的五脏六腑也跟着产生疾病。 肾得寒气&#xff0c;传给脾气&#xff0c;脾无法将水谷之精输养全身&#xff0c;就会导致人言语无力&a…