数据库优化之常用的show variables、show status配置优化

news2024/12/30 2:58:13

文章目录

  • ⭐️ MySQL优化-配置优化
    • 1、show variables查看MySQL服务器配置参数
      • 1)查看及调整系统配置变量值
      • 2)查询缓存相关参数:
    • 2、show status查看MySQL服务器运行状态值
      • 1)调整max_connections:
      • 2)调整back_log:
      • 3)调整table_open_cache:
      • 4)调整innodb_lock_wait_timeout:
      • 5)调整innodb_buffer_pool_size:

当面试官让你聊聊MySQL数据库性能优化,你还是只能回答优化sql,建索引吗?
让我们看看还可以从哪些方面聊聊吧。其实你还可以从网速、数据量、数据库日志、内存等问题、硬件配置,当前占用资源、硬盘碎片或索引碎片等等诸多方面分析聊聊。
传送门:MySQL数据库优化看这一篇就够了(最全干货篇)

⭐️ MySQL优化-配置优化

1、show variables查看MySQL服务器配置参数

1)查看及调整系统配置变量值

show variables;--查看一些系统配置变量
show variables like 'key_%';
show variables like '%cache%';--查看缓存相关参数
show variables like 'innodb_buffer_pool%';--查看缓冲池信息
show variables like 'innodb_file_per_table';--选择是否将表数据和系统表空间独立成单个文件。


2)查询缓存相关参数:

2、show status查看MySQL服务器运行状态值

通过下面的命令可以了解MySQL服务器运行状态值。

show status;
show status like 'com_%';
show status like 'innodb_%';
show status like 'connections';
show status like 'slow_queries';

1)调整max_connections:

MySQL最大连接数量,默认151。
在Linux系统上,如果内存足够且不考虑用户等待响应时间这些问题,MySQL理论上可以支持到万级连接,但是通常情况下,这个值建议控制在1000以内。

2)调整back_log:

TCP连接的积压请求队列大小,通常是max_connections的五分之一,最大不能超过900。

3)调整table_open_cache:

这个值应该设置为max_connections的N倍,其中N代表每个连接在查询时打开的表的最大个数。

4)调整innodb_lock_wait_timeout:

该参数可以控制InnoDB事务等待行锁的时间,默认值是50ms,对于反馈响应要求较高的应用,可以将这个值调小避免事务长时间挂起;
对于后台任务,可以将这个值调大来避免发生大的回滚操作。

5)调整innodb_buffer_pool_size:

InnoDB数据和索引的内存缓冲区大小,以字节为单位,这个值设置得越高,访问表数据需要进行的磁盘I/O操作就越少,如果可能甚至可以将该值设置为物理内存大小的80%。

调优参考计算方法
val = Innodb_buffer_pool_pages_data / Innodb_buffer_pool_pages_total * 100%

val > 95% 则考虑增大 innodb_buffer_pool_size, 建议使用物理内存的75%

val < 95% 则考虑减小 innodb_buffer_pool_size, 建议设置为:Innodb_buffer_pool_pages_data * Innodb_page_size * 1.05 / (102410241024)

设置命令:set global innodb_buffer_pool_size = 2097152; //缓冲池字节大小,单位kb,如果不设置,默认为128M

设置要根据自己的实际情况来设置,如果设置的值不在合理的范围内,并不是设置越大越好,可能设置的数值太大体现不出优化效果,反而造成系统的swap空间被占用,导致操作系统变慢,降低sql查询性能。

修改配置文件的调整方法,修改my.cnf配置:

innodb_buffer_pool_size = 2147483648 #设置2G

innodb_buffer_pool_size = 2G #设置2G

innodb_buffer_pool_size = 500M #设置500M

MySQL5.7及以后版本,改参数时动态的,修改后,无需重启MySQL,但是低版本,静态的,修改后,需要重启MySQL。

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

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

相关文章

chatgpt赋能python:Python可以烧录进硬件里吗?

Python可以烧录进硬件里吗&#xff1f; Python编程语言已经成为了越来越多的开发工程师的首选工具。这是一门易学易用的编程语言&#xff0c;以其灵活性、可读性和功能强大而受到广泛的青睐。因此&#xff0c;许多人都很自然地想知道这个问题&#xff1a;Python可以烧录进硬件…

公司大规模裁员的时间轴

正如我们常说的公司在大规模裁员之前是有很多征兆的&#xff0c;不是就拍怕脑袋决定的。 这次公司的裁员真的属于教科书级别的裁员&#xff0c;因此觉得记录下公司整个过程的时间轴是有意义的&#xff0c;希望能够给所有朋友有个参考。 也很想知道的是&#xff0c;如果是你&am…

react组件性能优化探索实践

React本身就非常关注性能&#xff0c;其提供的虚拟DOM搭配上Diff算法&#xff0c;实现对DOM操作最小粒度的改变也是非常的高效。然而其组件渲染机制&#xff0c;也决定了在对组件进行更新时还可以进行更细致的优化。 react组件渲染 react的组件渲染分为初始化渲染和更新渲染。…

PB12.5 获取ip与计算机名

/建立全局的结构s_wsadata //结构如下: //version unsignedinteger //highversion unsignedinteger //description[257] character //systemstatus[129] character //maxso…

MySQL基础知识每日总结(5)

regexp检查总是返回0(没有匹配)或者1(匹配) 一、CASE表达式 1.两种写法 ①简单case表达式 case sex when 1 then 男when 2 then 女else 其他 end②搜索case表达式 casewhen sex 1 then 男when sex 2 then 女else 其他 end以上两种写法结果相同&#xff0c;但是简单case表达…

SpringCloudAlibaba:服务注册与发现之Nacos学习

目录 一、服务注册与发现介绍 1、常见注册中心 2、服务注册与发现的基本流程是: 3、服务注册与发现的主要好处是: 二、Alibaba Nacos 介绍 三、Nacos基本使用 1.linux安装包方式单节点安装部署 1. jdk安装配置 2. nacos安装 2.Nacos集成SpringBoot实现服务注册与发现…

跨国企业的组网需求分析

【案例背景】 经济全球化的背景下&#xff0c;跨国企业如何解决数据远距离传输的问题&#xff0c;稳定、安全、快速地搭建企业内网&#xff0c;影响着业务的正常开展。 【客户需求】 这家跨国企业在国内外均有办事处&#xff0c;其中国内的办公人员需要访问位于国外的内部服务…

交直流系统潮流计算(含5种控制模式)matlab代码

目录 1主要内容 2 部分代码 3 程序结果 4 下载链接 1主要内容 该程序参考文献《交直流系统潮流计算及相互关联特性分析》&#xff0c;采用5种交直流潮流控制方式&#xff1a;1.定电流定电压 2.定电流定熄弧角 3.定功率定电压 4.定功率定熄弧角 5.定触发角定电流。以9节点系…

LNMP服务

目录 一、安装Nginx服务 1.编译安装nginx服务 2.添加nginx系统服务 二、安装Mysql服务 1.编译安装mysql服务 2.修改mysql配置文件 3.设置路径环境变量 4.初始化数据库 5.添加mysql系统服务 6.修改mysql 的登录密码 三、安装配置 PHP 解析环境 1.安装环境依赖包 2.编…

【论文阅读】Neuralangelo:高保真神经表面重建

【论文阅读】Neuralangelo&#xff1a;高保真神经表面重建 Abstract1. Introduction2. Related work3. Approach3.1.预备工作3.2.数值梯度计算3.3.渐进细节层次3.4.优化 4. Experiments4.1. DTU Benchmark4.2. Tanks and Temples4.3.细节水平4.4.消融 5. Conclusion paper proj…

(栈和队列) 1047. 删除字符串中的所有相邻重复项 ——【Leetcode每日一题】

❓1047. 删除字符串中的所有相邻重复项 难度&#xff1a;简单 给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&#xff0c;直到无法继续删除。 在完成所有重复项删除操作后返回…

小波和小波变换(应试)

零基础小白共计花费2小时38分04秒完成对小波的“平地起高楼”学习。 记录所有学习过程。 一、大致浏览PPT 这个阶段跳着看&#xff0c;太难的跳过 1.总结知识点 共四个部分 1.小波介绍 2.小波变换 小波变换的定义连续小波变换的定义离散小波变换小波重构 3.哈尔小波变换 …

华为OD机试真题 Java 实现【相对开音节】【2022Q4 100分】,附详细解题思路

一、题目描述 相对开音节构成的结构为辅音元音&#xff08;aeiou&#xff09;辅音(r除外)e&#xff0c;常见的单词有life,time,woke,coke,joke,note,nose,communicate&#xff0c;use&#xff0c;gate&#xff0c;same&#xff0c;late等。 给定一个字符串&#xff0c;以空格…

【Python接口自动化】--深入了解HTTP接口基本组成和网页构建原理

目录 引言 1、HTTP简介 2、HTTP原理和网页基础 2.1、 HTTP基本原理 2.2、 HTTP请求过程 2.3、 网页构成 引言 Python接口自动化有着广泛的应用场景&#xff0c;但是在实际使用过程中&#xff0c;可能会出现一些问题。比如&#xff0c;你不知道HTTP接口的基本构成&#xff0…

【Python编程从入门到实践第一版】P2 字符串入门

字符串入门 字符串的表示方法字符串基本函数.title().upper().lower()合并字符串删除空白 字符串&#xff0c;是一种常用的数据类别&#xff0c;而其值&#xff0c;可以顾名思义&#xff0c;是由字符组成的一串&#xff0c;故称为字符串&#xff1b; 字符串的表示方法 单引号、…

Andriod开发 SimpleAdapter BaseAdapter

1.SimpleAdapter 上一篇博客介绍的ArrayAdapter只能接受数组作为数据源&#xff0c;一般用于显示一行文字&#xff0c;更复杂的内容的显示可以用SimpleAdapter来实现。 SimpleAdapter接受List<Map<String, Object>>作为数据源&#xff0c;每个Map对应一个item&am…

为什么Pitch+Deck是创业者必备技能

投资术语简介&#xff1a;Pitch vs Deck vs BP BP以PPT形式出现的阅读式商业计划书&#xff0c;旨在无人讲解的前提下&#xff0c;通过文字和图表阐述项目商业信息。Deck单纯为营销演讲或融资推介所准备&#xff0c;以极少量文字图标和图像的介绍来辅助演讲的幻灯片。Pitch创业…

Spring Security 6.x 系列【52】扩展篇之集成第三方登录组件JustAuth

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列Spring Security 版本 6.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 文章目录 1. 简介2. 入门案例3. 流程分析3.1 申请授权3.2 登录4. Spring Security 整…

MySQL 避「坑」指南 —— 你能设置出正确的主键吗?

前言 主键&#xff0c;可以唯一标识表中的某一行&#xff08;记录&#xff09;。合理地设置主键&#xff0c;可以帮助我们准确、快速地找到所需要的数据记录。但是设置出正确的主键似乎并没有那么简单&#xff0c;请思考如下几个问题&#xff1a; 表中的业务字段可以用来做主…

Java-Servlet解析

文章目录 前言Servlet定义内部解析总结servlet接口实际应用的servletGenericServlet类和HttpServlet类 HttpServlet中的设计模式首先看一下模板方法的定义逐步解析 SpringMVC应用 前言 从事Javaweb项目开发有一段时间了&#xff0c;一直不理解它是怎么一回事&#xff0c;后来查…