Mysql数据库性能优化--performance_SCHEMA.STATEMENTS语句分析

本文主要是介绍Mysql数据库性能优化--performance_SCHEMA.STATEMENTS语句分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用performance_schema解决常见的故障案例

1 检查sql语句

使用performance_schema很容易找到引起性能问题的查询以及原因。

要启动语句检测,需要启动statement类型的插装。

插装类:

  1. statement/sql sql语句,如select,或者create table。
  2. statement/sp,存储过程
  3. statement/scheduler 事件调度器。
  4. statement/com 命令:如quit,kill,drop database,binlog dump,有些命令使用户不可用的只能mysqld调用。
  5. statement/abstract clone,query,new packet,relay log

2 常规sql语句

‘performance_schema将语句指标存储在

events_statement_current

events_statement_history

events_statement_history_long

SELECT a.*, c.thread_id, c.sql_text from information_schema.processlist a

LEFT JOIN performance_schema.threads b on a.id = b.PROCESSLIST_ID

LEFT JOIN performance_schema.events_statements_current c on c.THREAD_ID = b.THREAD_ID;

表中,表具有相同的结构。

3 可用于查询的优化指标列

created_tmp_disk_tables:查询创建临时表的数量,优化查询或者增加内存临死表的大小。

created_tmp_tables

mysql> select CREATED_TMP_DISK_TABLES, CREATED_TMP_TABLES from performance_schema.events_statements_hi
story;
+-------------------------+--------------------+
| CREATED_TMP_DISK_TABLES | CREATED_TMP_TABLES |
+-------------------------+--------------------+
|                       0 |                  0 |
|                       0 |                  0 |
|                       0 |                  1 |
|                       0 |                  1 |
|                       0 |                  0 |
+-------------------------+--------------------+
5 rows in set (0.01 sec)

select_full_join

select_FULL_RANGE_JOIN

SELECT RANGE

SELECT RANGE CHECK

SELECT SCAN

4 SYS用户下的核心statements视图

查找需要优化的视图

sys.statements_with_errors_or_warnings 列出所有语法错误和警告的所有语句

sys.statements_with_full_table_scans列出所有全表扫描的语句。

sys.statements_with_runtime_in_95th_percentile 所有执行时间在前95%的规范化语句。

sys.statements_with_sorting所有执行了排序的规范化语句。

sys.statements_with_temp_tables 所有使用了临时表的规范化语句

这篇关于Mysql数据库性能优化--performance_SCHEMA.STATEMENTS语句分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/371871

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML