MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

1  、MySQL数据库的性能监控
1.1、如何查看MySQL数据库的连接数
连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW  PROCESSLIST命令输出结果中运行着的线程个数的详情 , 如图所示 。

MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
SHOW PROCESSLIST默认情况下只显示前100条记录的详情,如果超过100条后需要显示所有,可以通过执行SHOW  FULL  PROCESSLIST命令,如图所示 。
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
show variables like 'max_connections'可以查询数据库中可以支持的最大连接数,如图所示 。
本文作者:张永清, 转载请注明: https://www.cnblogs.com/laoqing/p/16880718.html  来源于博客园 ,本文摘选自《软件性能测试分析与调优实践之路》
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
show global status like 'max_used_connections'可以查询当前已经使用过的最大连接数,如图所示 。
【MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选】
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
 1.2、如何查看MySQL数据库当前运行的事务与锁
事务是对数据库执行一种带有原子性、一致性、隔离性、持久性的数据操作 , 在MySQL中如果需要使用事务,那么数据存储时必须选用MySQL的innodb引擎,使用innodb引擎后,在MySQL系统数据库information_schema的innodb_trx表中记录了数据库当前正在运行的事务 。
innodb_trx表中包含的常用字段说明如表所示 。
表 innodb_trx表中包含的常用字段说明
字段
描述
trx_id
事务ID
trx_state
事务的状态,一般包括RUNNING、LOCK WAIT、ROLLING BACK 和 COMMITTING着几种不同的状态
trx_started
事务开始运行的时间
trx_requested_lock_id
事务需要等待的但已经被别的程序锁定的资源id,一般可以和INNODB_LOCKS表关联在一起获取更多的被锁定的资源的详细信息
trx_wait_started
事务开始等待时间
trx_mysql_thread_id
事务对应的MySQL线程id
trx_query
事务正在执行的SQL语句
trx_operation_state
事务操作的状态
trx_tables_in_use
事务使用到的数据库表的数量
trx_tables_locked
事务锁定的数据库表的数量
trx_rows_locked
事务锁定的数据记录行数
trx_rows_modified
事务更改的数据记录行数
trx_unique_checks
事务是否打开唯一性检查的标识
trx_foreign_key_checks
事务是否打开外键检查的标识
trx_isolation_level
事务隔离级别 , 一般分为Read Uncommitted(未提交读取)、Read Committed(已提交读?。epeatable Read(可重复读?。erializable(序列化)四种不同的级别
trx_weight
事务的权重
trx_lock_memory_bytes
事务锁住的内存大小,单位为 字节
trx_concurrency_tickets
事务并发票数
trx_last_foreign_key_error
事务最后一次的外键检查的错误信息
MySQL系统数据库information_schema的 innodb_locks表中记录了innodb数据库引擎当前产生的锁的情况, innodb_locks表中包含的常用字段说明如表所示 。
字段
描述(本文作者:张永清 ,  转载请注明: https://www.cnblogs.com/laoqing/p/16880718.html  来源于博客园 ,本文摘选自《软件性能测试分析与调优实践之路》)
lock_id
锁的id
lock_trx_id
拥有锁的事务 ID 。可以和 INNODB_TRX 表关联查询得到事务的详细信息
lock_mode
锁的模式,锁的模式一般包含:
行级锁:包括S(共享锁)、X(排它锁)、IS(意向共享锁)、IX(意向排它锁) 。
表级锁:包括S_GAP(共享间隙锁)、X_GAP(排它间隙锁)、IS_GAP(意向共享间隙锁)、IX_GAP(意向排它间隙锁) 和 AUTO_INC(自动递增锁)
lock_type
锁的类型 。包括RECORD(行级锁)和TABLE(表级锁)
lock_table
当前被锁定的或者包含锁定记录的表的名称
lock_index
当 LOCK_TYPE为RECORD 时,表示锁定的索引的名称,否则直接返回NULL
lock_space
当 LOCK_TYPE为RECORD 时,表示锁定行的表空间 ID , 否则直接返回NULL
lock_page
当 LOCK_TYPE为RECORD时 , 表示锁定记录行的页数,否则直接返回NULL
lock_rec
当 LOCK_TYPE为RECORD时,表示锁定的数据行的数量

推荐阅读