我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql中的监控与优化过程是怎样的

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql中的监控与优化过程是怎样的

mysql中的监控与优化过程是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1. 监控与优化

1.1 监控指标

mysql中的监控与优化过程是怎样的

1.1.1 QPS

mysql> show global status like 'Com%';
mysql> show global status like 'Queries';
+---------------+---------+
| Variable_name | Value   |
+---------------+---------+
| Queries       | 1983766 |
+---------------+---------+
1 row in set (0.00 sec)

QPS = ( Queries 2- Queries 1 ) / 间隔时间

mysql> show global status where variable_name in ('Queries','uptime');
+---------------+---------+
| Variable_name | Value   |
+---------------+---------+
| Queries       | 1983768 |
| Uptime        | 1364443 |
+---------------+---------+
2 rows in set (0.00 sec)

1.1.2 TPS

mysql> show global status where variable_name in ('com_insert','com_update','com_delete','uptime');
+---------------+---------+
| Variable_name | Value   |
+---------------+---------+
| Com_delete    | 23676   |
| Com_insert    | 793072  |
| Com_update    | 259586  |
| Uptime        | 1364651 |
+---------------+---------+
4 rows in set (0.00 sec)

Transaction_sum= Com_delete+ Com_insert+ Com_update

TPS = (Transaction_sum 2 - Transaction_sum 1 )  / (time 2 - time 1)

1.1.3 并发数

mysql> show global status like 'Threads_running';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| Threads_running | 2     |
+-----------------+-------+
1 row in set (0.01 sec)

1.1.4 连接数

# 最大连接数
mysql> show global status like 'max_used_connections%';
+---------------------------+---------------------+
| Variable_name             | Value               |
+---------------------------+---------------------+
| Max_used_connections      | 22                  |
| Max_used_connections_time | 2019-09-04 13:49:52 |
+---------------------------+---------------------+
2 rows in set (0.00 sec)
# 当前连接数
mysql> show global status like 'threads_connected';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 2     |
+-------------------+-------+
1 row in set (0.01 sec)

1.1.5 缓存命中率

##从缓存中读取的次数
mysql> show global status like 'innodb_buffer_pool_read_requests';
+----------------------------------+----------+
| Variable_name                    | Value    |
+----------------------------------+----------+
| Innodb_buffer_pool_read_requests | 16217299 |
+----------------------------------+----------+
1 row in set (0.00 sec)
##从物理磁盘读取的次数
mysql> show global status like 'innodb_buffer_pool_reads';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Innodb_buffer_pool_reads | 2067  |
+--------------------------+-------+
1 row in set (0.00 sec)

缓存命中率 = ( innodb_buffer_pool_read_requests -  innodb_buffer_pool_reads )  /

innodb_buffer_pool_reads * 100%

1.1.6 服务可用性

  1. 周期连接,执行查询:select @ @version; 或 select user();

  2. mysqladmin -uroot -pxxx -hxxxx ping

1.1.7 阻塞

##< mysql 5.7
SELECT b.trx_mysql_thread_id as '被阻塞的线程',
       b.trx_query as '被阻塞的SQL',
       c.trx_mysql_thread_id as '阻塞线程',
       c.trx_query as '阻塞SQL',
       UNIX_TIMESTAMP()-UNIX_TIMESTAMP(c.trx_started)) as '阻塞时间'
FROM information_schema.INNODB_LOCK_WAITS a 
JOIN information_schema.INNODB_TRX b ON a.requesting_trx_id=b.trx_id
JOIN information_schema.INNODB_TRX c ON a.blocking_trx_id=c.trx_id
WHERE (UNIX_TIMESTAMP()-UNIX_TIMESTAMP(c.trx_started))>30
##> mysql 5.7
SELECT waiting_pid AS '被阻塞的线程',
       waiting_query AS '被阻塞的SQL',
       blocking_pid AS '阻塞线程',
       blocking_query AS '阻塞SQL',
       wait_age AS '阻塞时间',
       sql_kill_blocking_query AS '建议操作'
FROM sys.innodb_lock_waits
WHERE (UNIX_TIMESTAMP()-UNIX_TIMESTAMP(wait_started))>30

1.1.8 死锁

##pt工具
pt-deadlock-logger u=admin, p=123456, h=127.0.0.1 \
--create-dest-table \
--dest u=admin,p=123456, h=127.0.0.1.D=dba,t=deadlock
##全局参数,日志监控
mysql> set persist innodb_print_all_deadlocks=on;

11.1.9 慢查询

  1. 监控慢查询日志

  2. 通过information_shcema.processlist表实时监控

1.1.10 主从延迟

  1. show slave status\G

  2. pt-heartbeat

##主库
pt-heartbeat --user=xx --password=xxx -h master --create-table --database xxx --update --daemonize --interval=1
##从库
pt-hearbeat --user=xx --password=xx -h slave --database xxx
--monitor --daemonize --log /tmp/slave_lag.log

1.1.11 主从状态

  1. show slave status\G

    IO/SQL 两个线程状态(yes or no)

1.2 负载问题

mysql中的监控与优化过程是怎样的

1.3 优化

mysql中的监控与优化过程是怎样的

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql中的监控与优化过程是怎样的

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Container内部进程监控是怎样的

这篇文章主要介绍“Container内部进程监控是怎样的”,在日常操作中,相信很多人在Container内部进程监控是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Container内部进程监控是怎样的
2023-06-05

PHP中封装性的代码量监控与优化

摘要:在PHP开发中,良好的封装性是增加代码可读性和维护性的关键。本文将介绍如何通过代码量监控和优化来提高PHP代码的封装性,并提供具体代码示例。引言:在现今的开发环境中,代码的可读性和维护性变得越来越重要。良好的封装性是保证代码质量的一个
2023-10-21

PostgreSQL中怎么监控VACUUM的处理过程

这篇文章主要讲解了“PostgreSQL中怎么监控VACUUM的处理过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PostgreSQL中怎么监控VACUUM的处理过程”吧!概览PG的MV
2023-05-31

Linux系统中的Mysql安装过程是怎样的

这期内容当中小编将会给大家带来有关Linux系统中的Mysql安装过程是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mysql是 Oracle 旗下得一款产品,属于关系型数据库,在 WEB 应用方
2023-06-28

编程热搜

目录