开发者社区> 江夏、> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

几个必须掌握的SQL优化技巧(一):查看SQL语句的执行频率

简介: 在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。
+关注继续查看

1 前言


在应用的开发过程中,由于开发初期的数据量一般都比较小,所以开发过程中一般都比较注重功能上的实现,但是当完成了一个应用或者系统之后,随着生产数据量的急剧增长,那么之前的很多sql语句的写法就会显现出一定的性能问题,对生产的影响也会越来越大,这些不恰当的sql语句就会成为整个系统性能的瓶颈,为了追求系统的极致性能,必须要对它们进行优化。

这篇文章开始后面的几篇文章将结合自己平时工作和学习中的知识记录下,当面对一个有sql性能问题的数据库时,我们应该从何处入手来进行系统的分析,使得能够尽快定位问题、解决问题。


2 正文


这篇文章主要讲两个命令,它们分别是:


show[session|global] status
复制代码



show global status like 'Innodb_rows_%'
复制代码


在MySQL客户端连接成功后,我们可以通过


show[session|global] status
复制代码


命令可以提供服务器状态信息。


该命令可以根据需要使用 参数session或者global来显示session级(当前连接)的统计结果和global级(自数据库上次启动至今)的统计结果。如果不写,则默认使用session参数。比如下面的语句即可以查看当前连接的那些sql语句执行的频率比较高,比如查询、更新、插入还是删除的哪种操作较多。一般来说主要是以查询为主。


show status like 'Com_______'
复制代码


因为我这本地数据库,所以现在并没有sql语句的执行操作:


c66dd47032ac41de9756df1cccc60f7c~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


show global status like 'Com_______'
复制代码


上面的命令即可查看全局的(自数据库上次启动至今)的统计结果。可以看到查询操作一共执行了10次。


8da7a2ccbafd41689b23c3c1a9baf7b0~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


并且在执行完操作之后,我们可以看到操作统计数据也会发生变化:


328af2a08b314de6a6ad03c3d01bd294~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


在执行完update语句之后:


UPDATE jdbc.`user` set username='孙悟空' where id=1
复制代码


再执行上述命令可以发现update影响的数据行数发生了变化:

ed68e79ff84d456591f35979e6a70a69~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

对于Innodb数据库引擎的执行命令如下:

show global status like 'Innodb_rows_%'
复制代码


5742481149fa4aa99d6d8b80434ac799~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

Com_%表示的是%语句执行的次数,并且对于所有的存储引擎的表操作都会进行统计。


Innodb_%则只针对Innodb存储引擎的数据库,并且统计的算法与其他的数据库也有区别。


在上面查询结果中有几个很重要的参数,它们分别是:Insert、delete、update、select(innodb对应的则是read),它们分别对应数据库操作的增删改查。


3 总结


通过上述的命令我们可以发现数据库主要以何种操作为主,那么可以为后续的sql优化提供一些借鉴性的意见。

后面将会继续分享关于sql优化的其他方法和步骤。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MybatisPlus开启打印sql语句
MybatisPlus开启打印sql语句
0 0
SQL DELETE 语句
SQL DELETE 语句
0 0
SQL UPDATE 语句
SQL UPDATE 语句
0 0
一条sql语句搞定基于mysql的sql执行顺序的基本理解
一条sql语句搞定基于mysql的sql执行顺序的基本理解
0 0
SQL SELECT 语句
SQL SELECT 语句
0 0
第三章用sql语句操作数据
第三章用sql语句操作数据
0 0
SQL 语法--表特定语句--分组、排序、过滤 | 学习笔记
快速学习 SQL 语法--表特定语句--分组、排序、过滤
0 0
SQL 语法--表特定语句--alter、drop、view | 学习笔记
快速学习 SQL 语法--表特定语句--alter、drop、view
0 0
SQL 语法--数据库特定语句 | 学习笔记
快速学习 SQL 语法--数据库特定语句
0 0
SQL 语法--表特定语句--create、insert、desc | 学习笔记
快速学习 SQL 语法--表特定语句--create、insert、desc
0 0
+关注
江夏、
一个写代码的....
文章
问答
文章排行榜
最热
最新
相关电子书
更多
MaxCompute SQL计算成本调优以及优化方法
立即下载
时序数据库TSDB新功能 - 如何用SQL进行时序查询
立即下载
RDS SQL Server CPU高使用率性能优化
立即下载