MySQL Status Handler_read_first 数据库状态作用意思及如何正确

本站中文解释

: 表示从头读取索引的百分比,低的时候,表示使用了索引;高的时候,表示直接遍历表;

Handler_read_key : 表示读取索引时,要求有限个字段可以构建组合索引;

Handler_read_next : 表示读取组合索引,从已有索引继续读取其他索引;

Handler_read_rnd : 表示从表中直接随机读取数据;

Handler_read_rnd_next : 表示从从索引读取数据,需要从末尾索引查询;

Innodb_buffer_pool_read_requests : 表示Buffer pool要求读取百分比;

Innodb_buffer_pool_reads : 表示外部I/O读取百分比,低数值表示InnoDB buffer足够而不需要I/O;

Innodb_log_waits : 这个状态可以在InnoDB的日志缓冲前一次提交事务之间有效地检查等待时间,如果大于零,表示日志缓冲溢出的可能性较大;

Innodb_log_writes : 表示InnoDB每秒发出的日志记录;

Innodb_row_lock_waits/ Innodb_row_lock_time : 表示阻塞与争用行锁的百分比;

Slow_queries : 表示执行时间大于指定值(long_query_time参数)。

MySQL status变量设置:

1.最简单的方式是使用 SHOW STATUS 命令:

mysql> SHOW STATUS;

2.也可以使用 SHOW STATUS LIKE ‘%值%’ 这样的形式来只查询特定的 status 变量:

mysql> SHOW STATUS LIKE ‘%read_requests%’;

3.若想获取更多的信息,还可以查看 INFORMATION_SCHEMA.GLOBAL_STATUS 表,表中存有所有 status 值:

mysql> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_STATUS;

4.最后,还有一个管理选项可以在 my.cnf 中设置,如:

# log-slow-queries = /var/log/mysql/mysql-slow.log

# long_query_time = 5

在此示例中,查询执行时间大于 5 秒的查询将会被记录在 /var/log/mysql/mysql-slow.log 文件中,可以用来检查慢查询的细节,或者进行查询优化。


数据运维技术 » MySQL Status Handler_read_first 数据库状态作用意思及如何正确