当前位置: 首页 > ops >正文

SQL性能分析

查看数据库操作频次

使用SHOW GLOBAL STATUS LIKE 'Com_______'; 指令,能查看当前数据库的INSERTUPDATEDELETESELECT访问频次 。若以查询为主,需重点优化查询相关性能,如索引;若以增删改为主,可考虑事务处理、批量操作等方面的优化 。

为什么我用DateGrip 查询一次表,我的Com_select增加了9次?

Com_select 增加多次是因为 DataGrip 的 可视化操作背后隐藏了多条 SELECT 语句,用于获取数据、元信息或实现交互功能。这是客户端工具的正常行为,并非异常。如果需要精确控制 SELECT 次数,建议通过工具设置或手动编写 SQL 来减少不必要的查询。

慢查询日志

MySQL 的慢查询日志是一种用于记录数据库中执行时间较长的 SQL 语句的日志功能,是数据库性能优化的重要工具。

作用

  • 定位性能瓶颈:通过记录执行时间超过设定阈值的 SQL 语句,帮助数据库管理员和开发人员找出那些消耗大量时间的查询,从而定位数据库性能瓶颈所在。
  • SQL 优化依据:提供了 SQL 语句的实际执行性能数据,如执行时间、锁等待时间、扫描行数等,为优化 SQL 语句提供了真实可靠的依据。可以根据这些数据来调整查询条件、添加索引或者重写 SQL 逻辑 。
  • 系统监控:长期监控慢查询日志,能观察数据库性能随时间的变化趋势,提前发现潜在的性能问题,以便及时调整系统配置或进行优化 。
  • 索引优化:可设置记录未使用索引的查询,帮助发现数据库中可能存在的索引缺失或无效索引使用情况,进而针对性地优化索引 。

工作原理

  • 启用与配置:通过设置全局变量来开启和配置慢查询日志相关参数。
    • slow_query_log :慢查询日志总开关,默认值为 OFF(关闭 ),设置为 ON 或 1 时启用慢查询日志 。
    • slow_query_log_file :用于指定慢查询日志文件的存储位置和名称,默认位于 MySQL 数据目录下,文件名一般为 hostname - slow.log 。
    • long_query_time :定义慢查询的时间阈值,默认是 10 秒,即 SQL 语句执行时间超过这个值就会被记录到慢查询日志中。从 MySQL 5.6 版本起,支持设置小于 1 秒的小数,如 0.1 秒,可根据实际需求调整 。

配置方式

  • 配置文件设置(永久生效) :在 MySQL 配置文件(如 Linux 系统下的my.cnf 或my.ini )的[mysqld] 模块中添加或修改相关参数。例如:
  • slow_query_log = 1
    slow_query_log_file = /var/log/mysql/mysql-slow.log  # 可按需指定日志文件路径
    long_query_time = 1  # 慢查询阈值设为1秒,可调整
http://www.xdnf.cn/news/7014.html

相关文章:

  • 23种设计模式考试趋势分析之——适配器(Adapter)设计模式——求三连
  • IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 VSCode + IoT Link 插件
  • ubuntu18.04编译qt5.14.2源码
  • [特殊字符] SSL/TLS 中的密钥协商流程笔记
  • 进程的调度
  • SpringBoot快速上手
  • CUDA 纹理入门
  • replay下载
  • SOLID 面对象设计的五大基本原则
  • 一种基于条件约束注意力生成对抗网络的水下图像增强模型
  • 二叉树构造:从前序、中序与后序遍历序列入手
  • USB学习【11】STM32 USB初始化过程详解
  • 【AI】Ubuntu 22.04 4060Ti16G 基于SWIFT框架的LoRA微调 模型Qwen3-1.8B 数据集弱智吧 微调笔记
  • 【iOS】探索消息流程
  • 上位机知识篇---流式Web服务器模式的实现
  • STM32SPI通信基础及CubeMX配置
  • OVS练习笔记20250518
  • Kubernetes控制平面组件:Kubelet详解(五):切换docker运行时为containerd
  • Vue-监听属性
  • 报错System.BadImageFormatException:“试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)”
  • 面试中的线程题
  • 数据结构:二叉树一文详解
  • Linux安全第三章-系统安全及应用
  • 深入浅出Hadoop:大数据时代的“瑞士军刀”
  • 面向GIS的Android studio移动开发(二)--在地图上绘制电子围栏
  • Linux(2)——shell原理及Linux中的权限
  • 黑灰产业链深度解析
  • 最新缺陷检测模型:EPSC-YOLO(YOLOV9改进)
  • 使用 C# 入门深度学习:线性代数详细讲解
  • Android 性能优化入门(一)—— 数据结构优化