MySQL性能优化器
1 Mysql中有专门负责优化SELECT语句的优化器模块,主要功能: 通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计划(他认为最优的数据检索方式,但不见得是DBA认为是最优的,这部分最耗费时间) 2 当客户端向MySQL 请求一条Query,命令解析器模块完成请求分类,区别出是 SELECT 并转发给MySQLQuery Optimizer时,MySQL Query Optimizer 首先会对整条Querv进行优化,处理掉一些常量表达式的预算,直接换算成常量值。并对 Querv 中的查询条件进行简化和转换,如去掉一些无用或显而易见的条件、结构调整等。然后分析 Query 中的 Hint 信息 (如果有),看显示Hint信息是否可以完全确定该Query 的执行计划。如果没有 Hint 或Hint 信息还不足以完全确定执行计划,则会读取所涉及对象的统计信息,根据 Query 进行写相应的计算分析,然后再得出最后的执行计划。
MySQL的常见瓶颈
-
CPU:CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候
-
IO:磁盘I/O瓶颈发生在装入数据远大于内存容量的时候服务器硬件的性能瓶颈: top,free, iostat和vmstat来查看系统的性能状态