Sql 优化工具

news2024/12/28 22:01:52

1、背景

对于正在运行的mysql 性能如何?参数设置的是否合理?账号设置的是否存在安全隐患?

对于Sql执行效率又如何?如何了然于胸?

show profile, explain,slow query log ,索引优化,失效原理,这些是基础。那么如何才能在此基础上,进一步分析,更方便的找出现存的问题?更快的解决呢?

2、工具

2.1、mysqltuner.pl(常用)

这是mysql一个常用的数据库性能诊断工具,主要检查参数设置的合理性包括日志文件、存储引擎、安全建议及性能分析。针对潜在的问题,给出改进的建议,是mysql优化的好帮手。

项目地址:https://github.com/major/MySQLTuner-perl

分析优化

重要关注[!!](中括号有叹号的项)例如[!!] Maximum possible memory usage: 4.8G (244.13% of installed RAM),表示内存已经严重用超了。
在这里插入图片描述
关注最后给的建议“Recommendations ”。
在这里插入图片描述

2.2、tuning-primer.sh(整体性分析)

这是mysql的另一个优化工具,针于mysql的整体进行一个体检,对潜在的问题,给出优化的建议。

项目地址:https://github.com/BMDan/tuning-primer.sh

目前,支持检测和优化建议的内容如下:
在这里插入图片描述分析优化

重点查看有红色告警的选项,根据建议结合自己系统的实际情况进行修改,例如:

在这里插入图片描述

2.3、pt-qurey-digest(慢日志分析)

pt-query-digest主要用来分析mysql的慢日志,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善。

项目地址:https://www.percona.com/downloads/percona-toolkit/LATEST/

第一部分:总体统计结果

Overall:总共有多少条查询
Time range:查询执行的时间范围
unique:唯一查询数量,即对查询条件进行参数化以后,总共有多少个不同的查询
total:总计 min:最小 max:最大 avg:平均
95%:把所有值从小到大排列,位置位于95%的那个数,这个数一般最具有参考价值
median:中位数,把所有值从小到大排列,位置位于中间那个数

第二部分:查询分组统计结果

Rank:所有语句的排名,默认按查询时间降序排列,通过–order-by指定
Query ID:语句的ID,(去掉多余空格和文本字符,计算hash值)
Response:总的响应时间
time:该查询在本次分析中总的时间占比
calls:执行次数,即本次分析总共有多少条这种类型的查询语句
R/Call:平均每次执行的响应时间
V/M:响应时间Variance-to-mean的比率
Item:查询对象

第三部分:每一种查询的详细统计结果

由下面查询的详细统计结果,最上面的表格列出了执行次数、最大、最小、平均、95%等各项目的统计。

ID:查询的ID号,和上图的Query ID对应
Databases:数据库名
Users:各个用户执行的次数(占比)
Query_time distribution :查询时间分布, 长短体现区间占比,本例中1s-10s之间查询数量是10s以上的两倍。
Tables:查询中涉及到的表
Explain:SQL语句

原文:https://mp.weixin.qq.com/s/55D8s66ml_q40msW-PhdGQ

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

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

相关文章

【切负荷】计及切负荷和直流潮流(DC-OPF)风-火-储经济调度模型研究【IEEE24节点】(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Qt实现滑动条平滑效果

效果图 基于QPropertyAnimation实现 代码部分 //设置滑动条动画 m_scrollAnimationnew QPropertyAnimation; m_scrollAnimation->setTargetObject(this); m_scrollAnimation->setPropertyName("value"); m_scrollAnimation->setEasingCurve(QEasingCurve:…

如何在已创建的SpringBoot项目基础上添加依赖

假设此时已经创建了一个SpringBoot项目,在使用的时候发现缺少 lombok 依赖,此时如何在不创建新项目的基础上添加该依赖?有两种方式: 通过Maven中央仓库导入依赖使用插件EditStarters导入依赖 1,通过Maven中央仓库导入依…

CVE-2023-21839 Weblogic远程代码执行漏洞复现

目录 0x01 声明: 0x02 简介: 0x03 漏洞概述: 0x04 影响版本: 0x05 环境搭建: Docker环境搭建: 漏洞环境搭建: 1、编辑docker-compose.yml 2、启动docker 3、访问页面: 0x…

PM不想做项目管理了,还能干点啥?

做项目经理太累了! 那么 不做项目经理还能做什么呢? 01 铁锅批发商 毕竟 当项目经理的时候 已经囤积了成百上千口锅 十年背锅经验不是瞎吹 并且可现场演示铁锅烙饼 老板亲授,真实还原,充饥必备 02 Office优化师 当项目…

Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享)

常用的两款AI可视化交互应用比较: Gradio Gradio的优势在于易用性,代码结构相比Streamlit简单,只需简单定义输入和输出接口即可快速构建简单的交互页面,更轻松部署模型。适合场景相对简单,想要快速部署应用的开发者。 …

43岁程序员,投了上万份简历都已读不回,只好把年龄改成40岁,这才有了面试机会,拿到了offer!...

40多岁找工作有多难? 一位43岁的程序员讲述了自己找工作的经历: 80年,大专,目前没到43周岁,年前被裁,简历上的年龄是42岁,两个多月投了上万份简历,99.5%是已读未回。后来改变策略把简…

阿里最新研究:当ChatGPT 遇上推荐系统,遭遇滑铁卢

文 |小戏 在 GPT-4 屠榜了 NLP,SAM 零样本分割一切让 CV 消失后,不知道大家会不会有好奇 AI 三大现实应用的另一边岁月静好的推荐系统有没有感受到来自遥远大模型带来的巨大压力。 尽管 ChatGPT 的训练过程似乎没有对推荐系统太多的兼容,但是…

[2020.3.13]通过Android反编译找出问题根因

反编译软件推荐如下: (1)JEB.android.decompiler (2)jadx-0.7.1 问题:喜马拉雅初次进入直播功能时显示无网络连接;播放音频时,播放界面下方内容无法加载,显示网络未连接 1 初次进入直播功能时显示无网络连接 2 左滑切换直播间…

Stability AI,新人工智能背景下的开源先锋

今天跟大家聊聊一家总部设在伦敦的AI公司,虽然小,但对这一波AI浪潮的贡献不可谓不小,好产品好公司都值得推荐给大家。 开源生成式绘画 Stable Diffusion 提起Stability AI,多少有些陌生,但提起Stable Diffusion&#x…

程序员,停止焦虑吧!|原创

hi,我是阿笠。今天聊聊程序员的焦虑问题。 不知道是我看到的消息被定向推送,还是因为现实环境就这样,似乎越来越多的人都被焦虑所困扰。 我也是其中一员。 失眠、焦虑 前段时间因为睡眠困扰,我去看了医生,医生给出的诊…

JavaScript Debugger 调试断点模式

在代码中加入debugger,相当于断点停顿,可用于查看变量传递情况,比如:Vue组件中生命周期onLoad(options) ,在上一页面进入下一页面后,传递进来的参数值。 备注 :options 参数为字符串&#xff0…

测试Ocr工具IronOCR(续2:编写圈选图片识别文本的程序)

上篇文章介绍了加载图片并圈选图片中文字区域的程序实现方式,本文基于此实现识别圈选区域文字内容的程序。主要识别语言包括英文和中文。IronOCR包中自带英文语言包,项目还需安装中文语言包,建议直接安装IronOcr.Languages.Chinese语言包&…

【Java EE】-CSS详解

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【JavaEE】 分享: 且视他人如盏盏鬼火,大胆地去走你的道路。——史铁生《病隙碎笔》 主要内容:CSS引入html的三种方式,CSS八大选择器&#xff…

YOLOv8 Tensorrt Python/C++部署教程

B站教学视频 https://www.bilibili.com/video/BV1Pa4y1N7HS Github仓库地址 https://github.com/Monday-Leo/YOLOv8_Tensorrt Introduction 基于Tensorrt加速Yolov8,本项目采用ONNX转Tensorrt方案支持Windows10和Linux支持Python/C YOLOv8 Environment Tenso…

Git cherry-pick详解

文章目录 基本用法引入多个提交代码冲突解决引入分支所有提交引入另一个代码库提交常用配置常见问题 对于多分支的代码库,将代码从一个分支引入到另一个分支是常见需求。 这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就…

Linux命令rsync增量同步目录下的文件

业务场景描述 最近遇到一个问题,需要编写相应的Linux命令,增量同步/var/mysql里的所有文件到另外一个目录/opt/mysql,但是里面相关的日志文件xx.log是不同步的,这个场景,可以使用rsync来实现 什么是rsync命令&#x…

【Linux】冯诺依曼体系及操作系统

本期博客我们将深入学习操作系统的架构 目录 一、冯诺依曼体系结构 二、操作系统(Operator System) 2.1 操作系统的引入 2.2 操作系统的概念 2.3 操作系统的定位 2.4 深度理解操作系统的管理 2.5 系统调用和库函数概念 一、冯诺依曼体系结构 冯诺依曼体系这个名词相信…

webpack5搭建react框架-配置优化

webpack5搭建react框架-配置优化 一、前言 使用webpack5已经搭建好了基础的开发环境和生产环境,但是有些功能在使用的时候还可以进一步优化,所以今天就来将之前的配置做一下最终的优化。 二、配置优化 1、设置扩展名和别名 目前的配置中我们在引入一…

Java泛型之通配符类型

1. 案例分析 class Animal {Overridepublic String toString() {return "animal";} }class Cat extends Animal {Overridepublic String toString() {return "cat";} }class Dog extends Animal {Overridepublic String toString() {return "dog&quo…