独一无二的「MySQL 调优金字塔」相信也许你拥有了它,你就赢了

总结一下,以上这两点的方针,遵循着研发成本的越来越低+效果方案越来越高,那么我们就划分出一个公式,作为系统服务调优方法论,我们就按照金字塔层面,进行自下而上进行调优!语句进行调优,使得其性能变得最佳化。类似,只是子查询使用的是非唯一索引语句

原文出自:

开发俏皮话

【让我 996 不算啥,我只怕测试也 996 给我提 bug!】

笔者瞩望

你好,无论我们在现实生活中是否相识,在 InfoQ 的世界里终会快乐相遇,在此提前预祝国庆节快乐,并且在属于我们的“1024”那天不在加班,早点回家陪陪老婆和孩子啊。

技术金字塔

本篇文章会按照自上而下以及自下而上的两种方向去“游览”【MySQL 技术金字塔】,两个方向分别是从成本出发的(潜台词就是便宜越好,照顾公司成本哦!),本章内容,可能有点多,希望大家慢慢消化,实在不行来片“吗丁啉”,哈哈,开玩笑了!

主要技术分布为 6 大部分,如下图金子图所示:

研发成本角度

从软件的【研发成本】的角度而言:伴随着优化的方向,从金字塔顶部像金字塔底部的方向进行过度,伴随着高度越来越低,成本会越来越低,这个方向其实是非常考验技术人员与项目管理者的能力的,但是它确实,老板对象看到的,哈哈。

实现效果角度

从软件的【技术可行性和效果】的角度而言:伴随着优化的方向,从金字塔低部像金字塔顶部的方向进行过度,伴随着高度越来越高,成本会越来越高,耗费的财力和人力也会相对的有所降低,但是如果多花钱,老板肯定不愿意,比如,请一些行业大牛或者一些牛掰的服务器等,可以看出来正好与上面的方向相反。

总结一下,以上这两点的方针,遵循着研发成本的越来越低+效果方案越来越高,那么我们就划分出一个公式,作为系统服务调优方法论,我们就按照金字塔层面,进行自下而上进行调优!我们接下来就来按照这个方向进行分析。

调优白皮书

SQL 调优

根据业务需求,不单纯的写好 SQL 语句,还要对 SQL 语句进行调优,使得其性能变得最佳化。

调优思路

由三个步骤组成:发现问题、分析问题和解决问题。

发现慢 SQL 及日志

查询慢 SQL 的日志是 MySQL 内置的一个功能,可以记录执行时间超过我们配置阈值的 SQL 语句。

参数与默认值:

修改数据库服务配置

修改我们安装后的配置文件 f,在[]段落中加入以上参数配置:

之后进行重启服务

修改全局会话配置

这种方式,不需要重启就可以生效,但是当服务器重启的时候,又会重新丢失配置。以上的配置可以

将慢查询 SQL 记录到 mysql 数据库中的 表中以及对应的 的文件中去。

分析慢 SQL 及日志

分析慢 SQ 的查询日志

查询 表,当根据上面的设置,当 设置为 TABLE 的时候,就会将 mysql 的慢查询日志记录到 mysql. 表中去mysql索引类型都有哪些,我们可以采用 * from mysql.去进行查询,可以根据此方面进行分析和统计 sql 的执行性能。

分析慢 SQL 日志文件

当 设置为 FILE 的时候,因为文件过大,不方便查看,所以可以采用专门的工具进行分析,这里主要介绍原生的 工具进行分析,如下图所示:

–help:

命令分析慢 SQL

关键字进行执行慢 SQL 语句,进行指标分析:

返回的基本结果如下:

查询类型,如下几组值:

和 类似,只是子查询使用的是非唯一索引

独一无二的「MySQL 调优金字塔」相信也许你拥有了它,你就赢了

好了看到这里你是否会觉得已经眼花缭乱了?现在开始重头戏,上面的可以作为知识扩展和了解,但下面的内容建议你一定要理解哦,会对性能优化有很大的帮助哦!

根据联接类型浏览所有行,并为所有匹配 WHERE 子句的行保存排序关键字和行的指针来完成排序。然后关键字被排序,并按排序顺序检索行。

在不同版本的变化

show 取值

SQL 性能分析

我们主要介绍一下三种:

show

它是 MySQL 的一个性能分析命令,可以跟踪 SQL 各种资源消耗。使用格式如下:

SHOW PROFILE [type [, type] ... ] [FOR QUERY n][LIMIT row_count [OFFSET offset]]

复制代码

默认情况下mysql索引类型都有哪些,show 只展示 和 两列,如果想展示更多信息,可指定 type,使用步骤如下:

select @@have_profiling;

复制代码

select @@profiling;

复制代码

set profiling=1

复制代码

Show 命令

首先使用show 分析指定查询:

使用 show 进行分析,默认情况下,只展示 和 两列,如果想展示更多信息,可指定 type。

使用 SHOW FOR QUERY 1;,1 代表的 (show )

展示 CPU 相关的开销

分析完成后,记得关闭掉 SHOW 功能:

. 用来做性能分析,内容对应 SHOW 和 SHOW 语句产生的信息,SHOW 本质上使用的也是 . 表。

表字段

查询

. 表已被废弃,在未来可能会被删除。未来将可使用 替代,

是 MySQL 建议的性能分析方式,未来 show /show 、 . 都会废弃。

在 .6 及更高版本才能使用。可以使用 show 进行查看。

下面来用 去实现 show 类似的效果: 查看是否开启性能监控

查看启用情况,MySQL 5.7 开始默认启用。

你也可以执行类似如下的 SQL 语句,只监控指定用户执行的 SQL:

这样,就只会监控 机器上 用户发送过来的 SQL。其他主机、其他用户发过来的 SQL 统统不监控,执行如下 SQL 语句,开启相关监控项:

使用开启监控的用户,执行 SQL 语句,比如:

执行如下 SQL,获得语句的 。

这一步类似于 show 。 执行如下 SQL 语句做性能分析,这样就可以知道这条语句各种阶段的信息了。

三种方式对比与选择

MySQL 官方文档声明 SHOW 已被废弃,并建议使用 作为替代品。,目前可以继续用 SHOW 了解 ,为未来做好准备

相关参数

缓存技术分析

MySQL 的 IO 持久化的将耗费大量资源。所以采用基于内存的 redis 会更好!

总结分析

具体的分析性能介绍后续会在【举世无双的「MySQL 调优金字塔」相信也许你拥有了它,你就很可能拥有了全世界。】进行深入介绍,此外还会伴有对索引原理的深入理解和分析。

本文到此结束,希望对大家有所帮助。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至81118366@qq.com举报,一经查实,本站将立刻删除。发布者:简知小编,转载请注明出处:https://www.jianzixun.com/92523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫

相关推荐

软文友链广告合作联系站长qq81118366