MySQL架构优化实战系列4:SQL优化步骤与常用管理命令

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
一、SQL语句优化步骤
 

 

1、查看MySQL状态及配置

 

show status 查看当前连接的服务器状态

show global status 查看MySQL服务器启动以来的状态

show global variables 查看MySQL服务器配置的变量

 

  • 增删改的统计

 

查看 insert delete update select查询总数


show global status like "com_insert%"

 

\

 

show global status like "com_delete%"

 

\

 

show global status like "com_update%"

 

\

 

show global status like "com_select%"

 

\

 

  • Innodb影响行数

 

show global status like "innodb_rows%";

 

\

 

  • MySQL连接总次数

 

show global status like "connection%";


包括成功和不成功的连接


\

 

  • MySQL已经工作的秒数

 

show global status like "uptime%";

 

\

 

  • 查看MySQL慢查询次数

 

show global status like "%slow%";

 

\

 

  • 查看慢查询日志相关设置

 

show global variables like "%slow%";


log_slow_queries = on slow_query_log = on 表明慢查询日志已经开启


slow_query_log_file 慢查询日志文件的路径


\

 

show global variables like "%long_query%";


查看慢查询执行时间粒度

 

\

 

2MySQL常规日志开启配置

 

  • 配置my.conf

 

general_log = on                                                              

general_log_file = /home/mysql-run/mysql.log

 

\
 

表明日志已经开启。

 

3、慢查询日志开启配置

 

  • 配置my.conf

\

 

  • 查看慢查询日志

 

cat mysql_slow.log

 

\

 

4、解释执行效率较低的SQL

 

  • exiplain sql

 

或者使用desc sql

 

\

 

select_type : 单表查询
rows: 查询扫描的行数
key:用到的索引
key_length:用到的索引的长度
extra: using index 表示使用索引过滤掉不需要的行

 

  • 分析表索引

 

myisam 索引存放于 .MYI文件中 与数据文件.MYD 分开 myisam索引可以压缩。


Innodb表中索引和数据存放同一个文件中共享表空间。

 

更多索引相关知识请点击:https://segmentfault.com/a/1190000005087951

 

二、MySQL常用管理命令
 

 

  • 查看数据库信息

 

mysql>\s

 

\

 

  • 查看引擎

 

mysql> show engines;

 

\

 

  • 查看插件

 

mysql> show plugins;

 

\

 

  • 查看数据库执行进程

 

mysql> show processlist ;

 

\

 

三、mysqldump工具
 

 

命令位于:/usr/local/mysql/bin/mysqldump

 

\

 

  • 备份所有数据库

\

 

  • 备份库smudge

\

 

  • 导出库smudge 中 表cs_line

\

 

  • 导出库smudge 中 表cs_line line_id = 6 的数据 及表结构

\

 

  • 备份同时生成新的binlog文件, 使用 -F

\

 

  • 只导出表结构不导出数据,--no-data

\

 

  • 跨服务器导出导入数据

 

将128服务器 smudge库中的in_line 表 导入到 130 服务器smudge 库中 加上-C参数可以启用压缩传递

 

\

 

  • mysqldumpslow

 

慢查询日志分析


首先是要开启慢查询日志 请看我的文章:https://segmentfault.com/a/1190000005342547


查看慢查询日志存储位置:


\

 

  • 用法

 

-s, 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;

-t, 是top n的意思,即为返回前面多少条的数据;

-g, 后边可以写一个正则匹配模式,大小写不敏感的。

 

  • mysqldumpslow -s -r 按照返回的记录数排序

 

mysqldumpslow -s -r /home/mysql-run/mysql_slow.log
\

 

  • mysqldumpslow -t 1 查看前1条

\

 

  • 过滤 order by 慢查询

\

 

四、mysqlsla工具
 

 

安装完毕命令位于: /usr/local/bin/mysqlsla

 

\

 

默认MySQLsla 工具是不可以使用的,需要添加依赖环境

 

  • 依赖相关

 

相关:DBD-mysql-4.013.tar.gz DBI-1.608.tar.gz mysqlsla-2.03.tar.gz

 

下载地址:http://pan.baidu.com/s/1eSCvFAq

 

  • DBI的编译安装

\

 

  • DBD-mysql驱动模块的编译安装

 

  • mysqlsla的编译安装

\

 

  • 用法

 

筛选数据库smudge慢查询
 

mysqlsla -lt slow /home/mysql-run/mysql_slow.log

 

\

 

筛选数据库smudge慢查询 ,并排除select语句 ,只取前两条


\

 

\

 


本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2016-09-02

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
75
分享
相关文章
MySQL进阶突击系列(07) 她气鼓鼓递来一条SQL | 怎么看执行计划、SQL怎么优化?
在日常研发工作当中,系统性能优化,从大的方面来看主要涉及基础平台优化、业务系统性能优化、数据库优化。面对数据库优化,除了DBA在集群性能、服务器调优需要投入精力,我们研发需要负责业务SQL执行优化。当业务数据量达到一定规模后,SQL执行效率可能就会出现瓶颈,影响系统业务响应。掌握如何判断SQL执行慢、以及如何分析SQL执行计划、优化SQL的技能,在工作中解决SQL性能问题显得非常关键。
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
404 66
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
39 9
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
106 11
Spark SQL向量化执行引擎框架Gluten-Velox在AArch64使能和优化
本文摘自 Arm China的工程师顾煜祺关于“在 Arm 平台上使用 Native 算子库加速 Spark”的分享,主要内容包括以下四个部分: 1.技术背景 2.算子库构成 3.算子操作优化 4.未来工作
184 0
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
SQL慢查询优化策略
在数据库管理和应用开发中,SQL查询的性能优化至关重要。慢查询优化不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将详细介绍针对SQL慢查询的优化策略。
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等