原标题:如何计算MySQL中的QPS及TPS指标

指标介绍

•QPS :Queries Per Second

查询量/秒,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理查询量多少的衡量标准。 •TPS : Transactions Per Second 事务数/秒,是一台数据库服务器在单位时间内处理的事务的个数。

QPS指标

先来认识一下以下几个有关查询的指标:

1.Questions:MySQL从上一次启动到当前客户端发送给MySQL的查询数量,不包括存储过程内部的查询。它不统计COM_PING,COM_STATISTICS,COM_STMT_PREPARE,COM_STMT_CLOSE,COM_STMT_RESET数量,但它会把show命令计算到指标当中。2.Queries:MySQL从上一次启动到当前客户端发送给MySQL的查询数量,包括存储过程内部的查询,它不统计COM_PING和COM_STATISTICS两个命令。3.Com_select:MySQL从上一次启动到当前所执行的查询语句总数量。

由上可见,在数据库中执行show命令会使questions值加1,而com_select则不记录,而且对于数据库的监控,经常会用到show命令,所以在用questions方式计算时,数据其实是被污染的。而且questions的值在设置环境变量的时候,也是一直在增长的,而com_select的值在此过程中,并不增长。所以在使用question方式进行计算时,人为拉高了qps的结果,相对来说,使用com_select此种方式来计算qps,相对比较帖近真实情况一些,也就是说,在同等条件下,拉高了qps的值。

以下将介绍通过 Questions 方式以及 Com_select 方式计算QPS

Questions方式计算QPS

1.Questions方式计算QPS公式

questions=showglobalstatuswherevariable_name='Questions';

uptime=showglobalstatus like'Uptime';

qps=questions/uptime

如上,拿当前Questions值除去Uptime=QPS,这个QPS的意义为从MySQL上一次启动到当前并且包含show命令平均每秒的QPS值,假如某个时间段的查询数量特别高,但是通过除Uptime时间,也会被拉下来。并且此questions值包含了show命令及环境变量所造成的数据污染。

2.Questions方式计算QPS指标SQL注:以下SQL在MySQL8.0中进行测试,5.6或5.7中的稍有差异。

selectround(sum(if(variable_name='Questions',variable_value,0))/sum(if(variable_name='Uptime',variable_value,0)),1)as'QPS'fromperformance_schema.global_statuswherevariable_namein('Questions','Uptime');

Com_select方式计算QPS

通过Com_select来计算QPS,可以连续获取两次Com_select指标,拿新指标减去老指标后再除于间隔时长的出间隔时间内的每秒平均值。这种方式更贴近真实一些。 1.Com_Select方式计算QPS脚本

Com_Select=showglobalstatuswhereVariable_name='Com_select';

#!/usr/bin/env bash

OLD_QPS=`echo "show global status where Variable_name='Com_select';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`

sleep $1

NEW_QPS=`echo "show global status where Variable_name='Com_select';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`

echo"($NEW_QPS-$OLD_QPS) / $1"|bc

TPS指标

获取TPS指标的方式也有两种:

1.基于 com_commit 、 com_rollback 计算tps2.基于 com_insert 、 com_delete 、 com_update 的 status ,变量计算tps

基于com_commit、com_rollback计算tps

相关指标介绍:

•Com_commit :MySQL从上一次启动到当前所执行的提交语句总数量•Com_rollback :MySQL从上一次启动到当前所执行的回退语句总数量

1.基于com_commit和com_rollback方式计算TPS公式这样计算出来的TPS也是MySQL从上次启动到当前平均每秒的TPS指标

com_commit=showglobalstatuswherevariable_name='com_commit';

com_rollback=showglobalstatuswherevariable_name='com_rollback';

uptime=showglobalstatuswhereVariable_name='Uptime';

tps=(com_commit+com_rollback)/uptime

2.计算脚本

#!/usr/bin/env bash

COM_COMMIT=`echo "show global status where Variable_name='Com_commit';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`

COM_ROLLBACK=`echo "show global status where Variable_name='Com_rollback';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`

UPTIME=`echo "show global status where Variable_name='Uptime';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`

echo"($COM_COMMIT + $COM_ROLLBACK) / $UPTIME"|bc

基于com_insert、com_delete、com_update的status计算tps

相关指标介绍:

•Com_update :MySQL从上一次启动到当前所执行的更新语句总数量•Com_delete :MySQL从上一次启动到当前所执行的删除语句总数量•Com_insert :MySQL从上一次启动到当前所执行的插入语句总数量

1.计算脚本指定间隔时间内取值两次,然后新指标减去老指标后三个指标相加再除以间隔时间得出间隔时间内每秒平均TPS

#/usr/bin/env bashOLD_COM_INSERT=`echo "show global status where Variable_name='Com_insert';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`OLD_COM_UPDATE=`echo "show global status where Variable_name='Com_update';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`OLD_COM_DELETE=`echo "show global status where Variable_name='Com_delete';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`sleep $1NEW_COM_INSERT=`echo "show global status where Variable_name='Com_insert';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`NEW_COM_UPDATE=`echo "show global status where Variable_name='Com_update';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`NEW_COM_DELETE=`echo "show global status where Variable_name='Com_delete';"|mysql --defaults-file=./.my.cnf -N|awk '{print $2}'`echo"(($NEW_COM_INSERT - $OLD_COM_INSERT) + ($NEW_COM_UPDATE - $OLD_COM_UPDATE) + ($NEW_COM_DELETE - $OLD_COM_DELETE)) / $1"|bc

如上内容如存在错误或意见不一致,欢迎指出并在评论区讨论更好的方法返回搜狐,查看更多

责任编辑:

mysql如何计算qps_如何计算MySQL中的QPS及TPS指标相关推荐

  1. Mysql和Oracle如何计算QPS和TPS

    文章目录 0.参考资料 1.概念 2.MySQL中QPS和TPS计算方式 2.1.指标相关的一些状态参数值解释 2.2.计算QPS 2.3.计算TPS 3.Oracle中QPS和TPS计算方式 3.1 ...

  2. 远程连接docker中的mysql容器_docker构建mysql容器及Navicat 远程连接

    1. MySQL部署 1.1拉取MySQL镜像 docker pull mysql 查看镜像 docker images 1.2创建MySQL容器 首先建立所需要的 文件夹: docker run - ...

  3. mysql数据库备份总结_mysql中mysqlhotcopy备份数据库总结

    mysqlhotcopy是mysql数据库中一个备份工具,相对于mysqldump是一个快速文件意义上的COPY,mysqlhotcopy是一个数据库端的SQL语句集合. mysqlhotcopy用法 ...

  4. mysql主从同步linux,linux中部署mysql主从同步示例详解(绝对经典,看了必会)

    准备两台服务器并安装MySQL5.7 master服务器 192.168.254.132 slave服务器 192.168.254.136 确保两台服务器安装的mysql版本一致,本测试使用的是mys ...

  5. 阿里云rds mysql数据库数据恢复到ecs中

    背景: aliyun上的rds数据库快满了,于是删除了某个备份的表 后面大boss说是有用的表,需要恢复回来,阿里云有7天内的物理全量备份(通过percona-xtrabackup备份的) 第一时间应 ...

  6. mysql数据库管理文件_数据库管理中文件的使用教程

    摘要:这篇MySQL栏目下的"数据库管理中文件的使用教程",介绍的技术点是"数据库管理.使用教程.数据库.的使用.文件.管理",希望对大家开发技术学习和问题解决 ...

  7. xp 安装mysql数据库_Windows XP系统中安装MySQL5.5.28数据库图文教程

    Windows XP系统中安装MySQL5.5.28数据库图文教程 2014-07-13 16:35来源:中国存储网 导读:MySQL数据库的安装一共分为两个部分:数据库的安装和数据库的配置.一.My ...

  8. mysql数据库优化课程---15、mysql优化步骤(mysql中最常用最立竿见影的优化是什么)...

    mysql数据库优化课程---15.mysql优化步骤(mysql中最常用最立竿见影的优化是什么) 一.总结 一句话总结:索引优化最立竿见影 索引优化:不然有多少行要扫描多少次,1亿行大概是5到10分 ...

  9. mysql indentify by_测试工作中常用到的sql命令!!!

    编写背景: 深圳下了一周的雨,天阴沉阴沉的,好想晒晒阳光,心情快被发霉了.这周运气很好,bugzilla和TestLink安装很顺利,mysql数据库的备份和恢复.bugzilla和testlink升 ...

最新文章

  1. arcgis 卸载和注册表相关总结
  2. c 语言程序设计教程 沈显君 答案,CD3计算机实践《C/C++语言程序设计》报告模板2.doc...
  3. 视频 + PPT 下载 | 如何利用数据武器,提升线上金融服务?
  4. DataTable方法 和 性能
  5. caffe图像分类教程_跟我上手深度学习: 五分钟尝试第一个深度学习(Caffe)训练和图像分类(详细图文步骤)...
  6. git分支指的是_Git分支是什么
  7. centos7 减少/home分区空间,扩大/ 的空间
  8. NoSql数据库确实非常适合网站
  9. arccatalog点要素显示不完_2020年仅剩100天,你的年假休完了吗?关于年假你不知道的7点!...
  10. Android 插件化换肤 思路及实现
  11. 中国异VC钠市场预测与投资战略报告(2022版)
  12. git 和 phabricator arc 常用 命令解析
  13. 视频 TS 内容详细讲解
  14. 恢复被病毒强制隐藏的文件夹
  15. 微信小程序使用键盘搜索功能
  16. ESP8266之AP模式
  17. c++自制锁机程序--两行代码
  18. 魔兽模型路径查看更改工具
  19. DPDK官方性能测试报告
  20. 社群运营的3大底层逻辑

热门文章

  1. java时间比较大小_Go、Java 和 Rust 的比较:得出了挺多结论
  2. python --version没输出_如何在Linux上安装Python
  3. 作者:朱扬勇,博士,复旦大学计算机科学技术学院教授、学术委员会主任,上海市数据科学重点实验室主任。...
  4. 《大数据》期刊2015年电子版赠阅调查问卷
  5. PBFT 算法原理简介
  6. git项目根据不同需求进行独立开发
  7. 五、字符与字符串(Char类,Char类的使用,String的基本使用,StringBuilder的使用)...
  8. 图解Android 内存分析工具之Mat使用教程
  9. 【C++基金会 06】explictkeyword
  10. 《设计模式系列》---克隆模式