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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介:
一、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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1489 152
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1073 156
|
8月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
8月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
1344 2
Spring Boot 3.x 微服务架构实战指南
|
9月前
|
消息中间件 数据采集 NoSQL
秒级行情推送系统实战:从触发、采集到入库的端到端架构
本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。
1454 3
秒级行情推送系统实战:从触发、采集到入库的端到端架构
|
9月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
997 7
|
9月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
9月前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。

推荐镜像

更多