【MySQL从入门到精通】【高级篇】(二十一)数据库优化步骤_查看系统性能参数

举报
码农飞哥 发表于 2022/09/25 06:09:58 2022/09/25
【摘要】 您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通 ❤️ 2. Python爬虫...

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦
💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通
❤️ 2. Python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,买不了上当 。python爬虫入门进阶
❤️ 3. Ceph实战,从原理到实战应有尽有。 Ceph实战
❤️ 4. Java高并发编程入门,打卡学习Java高并发。 Java高并发编程入门
😁 5. 社区逛一逛,周周有福利,周周有惊喜。码农飞哥社区,飞跃计划

1. 简介

上一篇文章我们介绍了哪些情况下适合创建索引,哪些情况下不适合创建索引,下面就介绍一下数据库优化步骤 【MySQL从入门到精通】【高级篇】(二十)适合创建索引的11种情况&不适合创建索引的7种情况,万字长文
在数据库调优中,我们的目标就是响应时间更快,吞吐量更大。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式。

2. 数据库服务器的优化步骤

当我们遇到数据库调优问题的时候,该如何思考呢?
整个流程划分成了观察(Show status)行动(Action) 两个部分。字母S的部分代表观察(会使用)
在这里插入图片描述

首先观察服务器状态是否存在周期性波动,如果缓存策略没有解决,或者不是周期性波动的原因,我们就需要进一步分析查询延迟和卡顿的原因

接下来进入S2这一步,我们需要开启慢查询。慢查询可以帮我们定义执行慢的SQL语句。我们可以通过设置long_query_time 参数定义"慢"的阈值,如果SQL执行时间超过了 long_query_time,则会认为是慢查询,当手机上来这些慢查询之后,我们就可以通过分析工具对慢查询日志进行分析。

在S3这一步骤中,我们就知道了执行慢的SQL,这样就可以针对性地用EXPLAIN查看对应SQL语句的执行计划,或者使用** show profile** 查看SQL中每一个步骤的时间成本,这样我们就可以了解SQL查询慢是因为执行时间长,还是等待时间长。

如果是SQL等待时间长,我们进入A2步骤。这一步骤中,我们可以调优服务器参数。比如适当增加数据库缓冲池等。如果SQL执行时间长,就进入A3步骤,这一步中我们需要考虑是索引设计的问题?还是查询关联的数据表过多?还是因为数据表的字段设计问题导致了这一现象。然后在这些维度上进行对应的调整。

如果A2和A3都不能解决问题,我们需要考虑数据库自身的SQL查询性能是否达到了瓶颈,如果确认没有达到性能瓶颈,就需要重新检查,重复以上的步骤,如果已经达到了性能瓶颈,进入A3阶段,需要考虑增加服务器,采用读写分离的架构,或者考虑对数据库进行分库分表,比如垂直分库,垂直分表和水平分表等。

以上就是数据库调优的流程思路。如果我们发现执行SQL时存在不规则延迟或卡顿的时候,就可以采用分析工具帮我们定位有问题的SQL,这三种分析工具你可以理解是SQL调优的三个步骤:慢查询,EXPLAIN和SHOW PROFILING
在这里插入图片描述

3. 查看系统性能参数

在MySQL中,可以使用SHOW STATUS 语句查询一些MySQL数据库服务器的性能参数、执行频率
SHOW STATUS语句语法如下:

SHOW [GLOBAL|SESSION] STATUS LIKE '参数';

一些常用的性能参数如下:

  • Connections: 连接MySQL服务器的次数。
  • Uptime: MySQL服务器的上线时间。
  • Slow_queries: 慢查询的次数。
  • Innodb_rows_read: Select查询返回的行数
  • Innodb_rows_inserted: 执行INSERT操作插入的行数
  • Innodb_rows_updated: 执行UPDATE操作更新的行数
  • Innodb_rows_deleted:执行DELETE操作删除的行数
  • Com_select:查询操作的次数
  • Com_insert:插入操作的次数。对于批量插入的INSERT操作,只累加一次。
  • Com_update:更新操作的次数。
  • Com_delete:删除操作的次数。
  1. 若查询MySQL服务器的连接次数,则可以执行如下语句:
SHOW STATUS LIKE 'connections%';

在这里插入图片描述

总结

本文展示了数据库优化的步骤以及查询性能参数的方式,总体来说,数据优化的步骤主要的思路是:先观察,后处理,观察服务器状态,观察慢查询,进行SQL优化,调优服务器参数。最后才是加硬件,进行分库分表等操作。

文章来源: feige.blog.csdn.net,作者:码农飞哥,版权归原作者所有,如需转载,请联系作者。

原文链接:feige.blog.csdn.net/article/details/126815924

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。