玩转Mysql 八 (MySQ优化入门篇)

发布时间:2024年01月14日

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。如有侵权,请留言,我及时删除!

前言:

一个高性能,稳定的数据库集群并不是指的某一特性优化,就能保证系统的的稳定,需要从网络、硬件资源、操作系统、操作系统参数设置、数据库选型,执行SQL效率几个方面进行整体调优。

优化层级效果对比:

一、数据库服务器的优化步骤

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

2. 查看系统性能参数

2.1 SHOW STATUS LIKE '参数'

2.2?查看SQL的查询成本

3. 定位执行慢的 SQL:慢查询日志

3.0 介绍?

3.1 开启慢查询日志参数

3.2 查看慢查询次数

3.5 慢查询日志分析工具:mysqldumpslow

3.6 关闭慢查询日志

3.7 删除慢查询日志

4. 定位慢查询语句、查看 SQL 执行成本:show profile

5. 执行计划表:EXPLAIN

5.1 简介

5.2 基本语法

5.3 执行计划表介绍?

5.4 EXPLAIN四种输出格式

5.5 SHOW WARNINGS的使用

6. 分析优化器执行计划:trace

7. MySQL监控分析视图-sys schema

二、数据库调优问题的思考

1、在数据库调优中,我们的目标就是响应时间更快,吞吐量更大。利用宏观的监控工具和微观的? ?日志分析可以帮我们快速找到调优的思路和方式。?

调优流程:

  1. SHOW STATUS观察服务器状态,是否存在周期性波动;如果存在的话就缓存优化
  2. 如果还存在不规则延迟或卡顿的话,就开启慢查询、explan分析查询语句
  3. 如果发现sql等待时间长,就调优服务器参数;如果发现sql执行时间长,就索引优化、表优化;
  4. 如果还存在不规则延迟或卡顿的话,就观察sql查询是否到瓶颈了;是的话就读写分离、分库分表

2、三种分析工具(SQL调优三步骤):慢查询、EXPLAN、SHOW PROFLING

整个流程划分成了观察(Show status) 和行动(Action) 两个部分。字母 S 的部分代表观察(会使用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。

? ? ??

三、MySQL数据库优化入门

1、SQL优化内容包括sql语句的优化、参数调优、慢查询日志、EXPLAIN 执行计划分析等。

2、?查看系统性能参数

2.1?SHOW STATUS?LIKE '参数'

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

SHOW STATUS语句语法如下:

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

示例,查看数据库连运行时长(单位秒)和连接次数

大佬文档推荐

MySQL运行状态show status中文详解-CSDN博客

2.2?查看SQL的查询成本

SQL查询是一个动态的过程,从页加载的角度来看:

SHOW STATUS LIKE 'last_query_cost';

SQL的执行效率对比:缓存 ---> 内存--->磁盘。如果页就在数据库缓冲池中,那么效率是最高的,否则还需要从内存或者磁盘中进行读取,当然针对单个页的读取来说,如果页存在于内存中,会比在磁盘中读取效率高很多.

批量顺序查询平均下来每页查询更高

如果我们从磁盘中对单一页进行随机读,那么效率是很低的(差不多10ms),而采用顺序读取的方式,批量对页进行读取平均一页的读取效率就会提升很多,甚至要快于单个页面在内存中的随机读取。

所以说,遇到IO并不用担心,方法找对了,效率还是很高的。我们首先要考虑数据存放的位置,如果是经常使用的数据就要尽量放到缓冲池中,其次我们可以充分利用磁盘的吞吐能力,一次性批量读取数据,这样单个页的读取效率也就得到了提升。

生成100万+的测试数据

mysql 生成 测试数据 mysql生成大量测试数据_karen的技术博客_51CTO博客

查看77002的数据

文章来源:https://blog.csdn.net/weixin_41633010/article/details/135584537
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。