开发者学堂课程【MySQL 高级应用 - 索引和锁:性能分析前提知识】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/598/detail/8597
性能分析前提知识
目录:
一.引入简介
如果说我的系统不行不好,必须要有证据。
举例说明:
比如说,你去医院,你这边可能嗓子发炎了,他一看白细胞的数量超过了正常的时候范围。是不是一定有炎症了。这个时候就像如果我们有一种方法和策略能够给你像医院化验单一样出一份,根据化验单上的某些维度某些字段合理范围。
如果抛开咱们这条系统没问题,你这个化验单就是证据。
二. Mysql query optimizer
MySql Query Optimizer
1.Mysql 中有专门负责优化 SELECT 语句的优化器模块,主要功能:通过计算分析系统中收集到的统计信息,为客户端请求的 Query 提供他认为最优的执行计划(他认为最优的数据检索方式,但不见得是 DBA 认为是最优的,这部分最耗费时间)
2.当客户端向 MySQL 请求一条 Query ,命令解析器模块完成请求分类,区别出是SELECT 并转发给 MySQL Query Optimizer 时, MySQL Query Optimizer 首先会对整条 Query 进行优化,处理掉一些常量表达式的预算,直接换算成常量值。
并对 Query 中的查询条件进行简化和转换,如去掉一些无用或显而易见的条件、结构调整等。然后分析 Query 中的 Hint 信息(如果有),看显示 Hint 信息是否可以完全确定该 Query 的执行计划。
如果没有 Hint 或 Hint 信息还不足以完全确定执行计划,则会读取所涉及对象的统 t 计信息,根据 Query 进行写相应的计算分析,然后再得出最后的执行计划。
MySQL 常见瓶颈
1. CPU : CPU 在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候
I0:磁盘 I / O 瓶颈发生在装入数据远大于内存容量的时候
3.服务器硬件的性能瓶颈: top , free , iostat 和 lvmstat 来查看系统的性能状态