Mysql全局优化

Mysql全局优化总结

在这里插入图片描述
从上图可以看出SQL及索引的优化效果是最好的,而且成本最低,所以工作中我们要在这块花更多时间。

补充一点配置文件my.ini或my.cnf的全局参数:

假设服务器配置为:

  • CPU:32核
  • 内存:64G
  • DISK:2T SSD

下面参数都是服务端参数,默认在配置文件的 [mysqld] 标签下

max_connections=3000

连接的创建和销毁都需要系统资源,比如内存、文件句柄,业务说的支持多少并发,指的是每秒请求数,也就是QPS。

一个连接最少占用内存是256K,最大是64M,如果一个连接的请求数据超过64MB(比如排序),就会申请临时空间,放到硬盘上。

如果3000个用户同时连上mysql,最小需要内存3000256KB=750M,最大需要内存300064MB=192G。

如果innodb_buffer_pool_size是40GB,给操作系统分配4G,给连接使用的最大内存不到20G,如果连接过多,使用的内存超过20G,将会产生磁盘SWAP,此时将会影响性能。连接数过高,不一定带来吞吐量的提高,而且可能占用更多的系统资源。

max_user_connections=2980              

允许用户连接的最大数量,剩余连接数用作DBA管理。

back_log=300          

​ MySQL能够暂存的连接数量。如果MySQL的连接数达到max_connections时,新的请求将会被存在堆栈中,等待某一连接释放资源,该堆栈数量即back_log,如果等待连接的数量超过back_log,将被拒绝。

wait_timeout=300

指的是app应用通过jdbc连接mysql进行操作完毕后,空闲300秒后断开,默认是28800,单位秒,即8个小时。

interactive_timeout=300

指的是mysql client连接mysql进行操作完毕后,空闲300秒后断开,默认是28800,单位秒,即8个小时。

innodb_thread_concurrency=64

此参数用来设置innodb线程的并发数,默认值为0表示不被限制,若要设置则与服务器的CPU核心数相同或是CPU的核心数的2倍,如果超过配置并发数,则需要排队,这个值不宜太大,不然可能会导致线程之间锁争用严重,影响性能。

 innodb_buffer_pool_size=40G

innodb存储引擎buffer pool缓存大小,一般为物理内存的60%-70%。

innodb_lock_wait_timeout=10

行锁锁定时间,默认50s,根据公司业务定,没有标准值。

sort_buffer_size=4M

每个需要排序的线程分配该大小的一个缓冲区。增加该值可以加速ORDER BY 或 GROUP BY操作。

sort_buffer_size是一个connection级的参数,在每个connection(session)第一次需要使用这个buffer的时候,一次性分配设置的内存。

sort_buffer_size:并不是越大越好,由于是connection级的参数,过大的设置+高并发可能会耗尽系统的内存资源。例如:500个连接将会消耗500*sort_buffer_size(4M)=2G。

join_buffer_size=4M

用于表关联缓存的大小,和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用git上传本地文件

1、建立仓库 2.然后刷新网站,获取下载链接,备用。 3、接下来在本地创建一个文件夹, 4、把github上面的仓库克隆到本地 git clone https://github.com/xxxxx(https://github.com/xxxxx替换成你之前复制的地址) 5、把…

树莓派基础应用:智能家居监控系统

引言: 随着智能家居的普及,家居安全与监控逐渐成为人们关注的焦点。树莓派作为一种功能强大的迷你计算机,为我们提供了实现智能家居监控系统的可能。在本篇博客中,我们将通过构建一个简单的智能家居监控系统,来探索树莓…

uniapp组件库Modal 模态框 的使用方法

目录 #平台差异说明 #基本使用 #传入富文本内容 #异步关闭 #点击遮罩关闭 #控制模态框宽度 #自定义样式 #缩放效果 #API #Props #Event #Method #Slots 弹出模态框,常用于消息提示、消息确认、在当前页面内完成特定的交互操作。 #平台差异说明 AppH5微…

redis的数据类型

Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合&…

IT6510FN IT6510FN/HW 转换器芯片 QFN封装

描述: IT6510是一款高性能的单芯片显示端口到MIPI-CSI/DSI转换器。结合DisplayPort接收器、MIPI发射器,IT6510支持DisplayPort输入和MIPI- csi /DSI输出转换功能。 内置的DisplayPort接收器完全兼容DisplayPort 1.2a和HDCP 1.3/2.3规格。通过4通道HBR2…

ERP读书笔记20240125-1

ERP(Enterprise Resource Planning,企业资源计划)的发展经历了从 MRP(Material Requirements Planning,物料需求计划)到 MRP2(Manufacturing Resources Planning,制造资源计划&#…

linux安装docker--更具官网教程

1.访问https://docs.docker.com/ 2.进入download 3输入cento 或者直接访问地址Install Docker Engine on CentOS | Docker Docs 4一步一步根据官网命令走 2安装 3 4 方式一: service docker start(开启) service docker status&#xff08…

3d导模型赋予材质方法---模大狮模型网

给3D模型赋予材质的方法可以根据您使用的软件和工作流程而有所不同。以下是一般的步骤,您可以根据自己的情况进行调整: 准备模型:首先,确保您的模型已经完全建模并进行了UV映射。UV映射是将2D纹理坐标应用到3D模型表面的过程&…

622.设计循环队列(附带源码)

目录 一、题目 ​编辑二、思路 第一种实现方式:数组 1、rear初始化为-1: 2、rear初始化为0: 第二种实现方式:链表 三、源码 一、题目 622. 设计循环队列 - 力扣(LeetCode) 二、思路 循环队列&…

记录centos安装nginx过程和问题

今天在centos上安装了nginx,遇到了些问题,记录一下。 使用yum直接安装的话安装的版本是1.20.1,使用源码包安装可以装到1.25.0(最新稳定版)。很有意思的一点是两种安装方法下安装的路径是不同的,且源码安装…

gin中使用限流中间件

限流又称为流量控制(流控),通常是指限制到达系统的并发请求数,本文列举了常见的限流策略,并以gin框架为例演示了如何为项目添加限流组件。 限流 限流又称为流量控制(流控),通常是指…

解决Sublime Text V3.2.2中文乱码问题

目录 中文乱码出现情形通过安装插件来解决乱码问题 中文乱码出现情形 打开一个中文txt文件,显示乱码,在File->Reopen With Encoding里面找不到支持简体中文正常显示的编码选项。 通过安装插件来解决乱码问题 安装Package Control插件 打开Tool->…