如何通过《软件性能测试分析与调优实践之路》优化MySQL数据库性能?

摘要:1 、MySQL数据库的性能监控 1.1、如何查看MySQL数据库的连接数 -> 关注清哥聊技术公众号,了解更多技术文章 连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW
1 、MySQL数据库的性能监控 1.1、如何查看MySQL数据库的连接数->关注清哥聊技术公众号,了解更多技术文章 连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW PROCESSLIST命令输出结果中运行着的线程个数的详情,如图所示。 SHOW PROCESSLIST默认情况下只显示前100条记录的详情,如果超过100条后需要显示所有,可以通过执行SHOW FULL PROCESSLIST命令,如图所示。 show variables like 'max_connections'可以查询数据库中可以支持的最大连接数,如图所示。 本文作者:张永清,转载请注明:https://www.cnblogs.com/laoqing/p/16880718.html来源于博客园 ,本文摘选自《软件性能测试分析与调优实践之路》 show global status like 'max_used_connections'可以查询当前已经使用过的最大连接数,如图所示。 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(已提交读取)、Repeatable Read(可重复读取)、Serializable(序列化)四种不同的级别 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(意向排它锁)。
阅读全文