此篇介绍一下关于MySQL数据库的关键性能指标。
QPS
每秒处理的查询数,同时适用于InnoDB和MyISAM引擎。
TPS
每秒处理的事务数,适用innodb引擎。
Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。
TPS包括一条消息入和一条消息出,加上一次用户数据库访问。
IOPS
每秒磁盘进行的I/O操作次数。
IOPS(Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。
随机读写频繁的应用,如OLTP(Online Transaction Processing),IOPS是关键衡量指标。
另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(Video On Demand),则更关注吞吐量指标。
使用explain分析sql语句
结果字段 | 含义 |
---|---|
id | select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 |
select_type | 查询类型 |
table | 正在访问哪个表 |
partitions | 匹配的分区 |
type | 访问的类型 |
possible_keys | 显示可能应用在这张表中的索引,一个或多个,但不一定实际使用到 |
key | 实际使用到的索引,如果为NULL,则没有使用索引 |
key_len | 表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度 |
ref | 显示索引的哪一列被使用了,如果可能的话,是一个常数,哪些列或常量被用于查找索引列上的值 |
rows | 根据表统计信息及索引选用情况,大致估算出找到所需的记录所需读取的行数 |
filtered | 查询的表行占表的百分比 |
Extra | 包含不适合在其它列中显示但十分重要的额外信息 |
查看索引的使用率
show status like 'handler_read%';
handler_read_key 越高说明索引使用的好,handler_read_rnt_next越高使用索引越低效。