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

本文涉及的产品
云数据库 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驱动模块的编译安装

20160902113550478.png

 

  • mysqlsla的编译安装

\

 

  • 用法

 

筛选数据库smudge慢查询
 

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

 

\

 

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


\

 

\

 


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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
SQL canal 运维
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
|
3天前
|
运维 负载均衡 关系型数据库
MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构
MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构
|
5天前
|
关系型数据库 MySQL 数据库
MySQL集群 双主架构(配置命令)
MySQL集群 双主架构(配置命令)
|
5天前
|
Kubernetes Cloud Native 持续交付
探索云原生架构的未来:如何优化资源管理和服务部署
【5月更文挑战第6天】 随着云计算的快速发展,云原生技术已成为企业数字化转型的关键驱动力。此篇文章深入探讨了云原生架构的核心组件及其在资源管理和服务部署方面的优化策略。通过分析容器化、微服务及自动化管理的实践案例,本文旨在为读者提供一套系统的方法论,以利用云原生技术实现更高效、灵活且可靠的IT基础设施。
24 2
|
9天前
|
SQL 关系型数据库 MySQL
【MySQL系列笔记】常用SQL
常用SQL分为三种类型,分别为DDL,DML和DQL;这三种类型的SQL语句分别用于管理数据库结构、操作数据、以及查询数据,是数据库操作中最常用的语句类型。 在后面学习的多表联查中,SQL是分析业务后业务后能否实现的基础,以及后面如何书写动态SQL,以及完成级联查询的关键。
164 6
|
9天前
|
SQL 关系型数据库 MySQL
【MySQL-4】简述SQLの通用语法及4种基本语句介绍(DDL/DML/DQL/DCL)
【MySQL-4】简述SQLの通用语法及4种基本语句介绍(DDL/DML/DQL/DCL)
|
10天前
|
SQL 存储 关系型数据库
【MySQL系列笔记】SQL优化
SQL优化是通过调整数据库查询、索引、表结构和配置参数等方式,提高SQL查询性能和效率的过程。它旨在减少查询执行时间、减少系统资源消耗,从而提升数据库系统整体性能。优化方法包括索引优化、查询重写、表分区、适当选择和调整数据库引擎等。
189 3
|
3天前
|
API 持续交付 开发者
构建高效微服务架构:后端开发的新视角
【5月更文挑战第8天】 随着现代软件开发的演变,微服务架构已经成为了企业追求敏捷、可扩展和灵活部署的重要解决方案。本文将深入探讨如何构建一个高效的微服务架构,包括关键的设计原则、技术栈选择以及持续集成与部署的最佳实践。我们还将讨论微服务带来的挑战,如数据一致性、服务发现和网络延迟,并提出相应的解决策略。通过本文,后端开发者将获得构建和维护微服务系统所需的深度知识,并了解如何在不断变化的技术环境中保持系统的健壮性和可维护性。
35 8
|
1天前
|
监控 持续交付 Docker
使用Docker进行微服务架构的最佳实践
【5月更文挑战第10天】本文探讨了使用Docker实施微服务架构的最佳实践。首先,理解微服务架构是拆分小型独立服务的模式,借助Docker实现快速部署、高可移植性和环境一致性。Docker的优势在于服务扩展、容器编排、自动化构建与部署。最佳实践包括:定义清晰服务边界,使用Dockerfile和Docker Compose自动化构建,利用Docker Swarm或Kubernetes编排,实施服务发现和负载均衡,监控与日志记录,以及持续集成和持续部署。Docker虽重要,但需与其他技术结合以确保系统整体稳定性。
|
1天前
|
缓存 负载均衡 API
微服务架构下的API网关性能优化实践
【5月更文挑战第10天】在微服务架构中,API网关作为前端和后端服务之间的关键枢纽,其性能直接影响到整个系统的响应速度和稳定性。本文将探讨在高并发场景下,如何通过缓存策略、负载均衡、异步处理等技术手段对API网关进行性能优化,以确保用户体验和服务的可靠性。