Mysql数据库的QPS和TPS的意义和计算方法

在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标。本文比较了网上的两种计算方式。先来了解一下相关概念。

概念介绍:

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

在对数据库的性能监控上经常会提到QPS和TPS这两个名词,下面就分别简单的分享一下关于MySQL数据库中的QPS和TPS的意义和计算方法。

1 QPS: 每秒Query 量,这里的QPS 是指MySQL Server 每秒执行的Query总量,计算方法如下:

Questions = SHOW GLOBAL STATUS LIKE 'Questions';
Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';
QPS=Questions/Uptime

2 TPS: 每秒事务量,通过以下方式来得到客户端应用程序所请求的 TPS 值,计算方法如下:

Com_commit = SHOW GLOBAL STATUS LIKE 'Com_commit';
Com_rollback = SHOW GLOBAL STATUS LIKE 'Com_rollback';
Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';
TPS=(Com_commit + Com_rollback)/Uptime

IOPS:(Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。

存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成。例如,主机写入一个最小的数据块,也要经过“发送写入请求、写入数据、收到写入确认”等三个步骤,也就是3个存储端访问。

IOPS的测试benchmark工具主要有Iometer, IoZone, FIO等,可以综合用于测试磁盘在不同情形下的IOPS。对于应用系统,需要首先确定数据的负载特征,然后选择合理的IOPS指标进行测量和对比分析,据此选择合适的存储介质和软件系统。

Questions 是记录了从mysqld启动以来所有的select,dml 次数包括show 命令的查询的次数。这样多少有失准确性,比如很多数据库有监控系统在运行,每5秒对数据库进行一次show 查询来获取当前数据库的状态,而这些查询就被记录到QPS,TPS统计中,造成一定的"数据污染".

如果数据库中存在比较多的myisam表,则计算还是questions 比较合适。

如果数据库中存在比较多的innodb表,则计算以com_*数据来源比较合适。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • python使用adbapi实现MySQL数据库的异步存储

    之前一直在写有关scrapy爬虫的事情,今天我们看看使用scrapy如何把爬到的数据放在MySQL数据库中保存. 有关python操作MySQL数据库的内容,网上已经有很多内容可以参考了,但都是在同步的操作MySQL数据库.在数据量不大的情况下,这种方法固然可以,但是一旦数据量增长后,MySQL就会出现崩溃的情况,因为网上爬虫的速度要远远高过往数据库中插入数据的速度.为了避免这种情况发生,我们就需要使用异步的方法来存储数据,爬虫与数据存储互不影响. 为了显示方便,我们把程序设计的简单一点,只是爬

  • 实现数据库水平切分的两个思路

    引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的问题.通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式. 水平切分数据库:可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失: 负载均衡策略:可以降低单台机器的访问负载,降低宕机的可能性: 集群方案:解决了数据库宕机带来的单点数据库不能访问的问题: 读写分离策略:最大限度了提高了

  • 如何合理使用数据库冗余字段的方法

    privot多对多关系的中间表.PT5框架会自动把privot带上. 我们需要隐藏,因为我们不需要privot,而且pritvot也不在我们模型本身,他是中间数据 另外冗余字段,我们有一个表是记录图片的,另一个表是记录商品的. 我们可以在图片你放商品图片里的url 同时商品里放图片id和图片URL 这两个字段是重复的,这就是数据冗余,我们设计数据库是不要出现冗余信息,为啥我们用冗余呢. 主要是为了出于对查询性能的考虑. 我们在这里做了数据冗余,我们就可以减少对图片表的查询,加速查询速度! 不过推

  • PHP单例模式数据库连接类与页面静态化实现方法

    本文实例讲述了PHP单例模式数据库连接类与页面静态化实现方法.分享给大家供大家参考,具体如下: 数据库test中数据表account内容 单例模式的数据库连接类 db.php <?php //单例模式的数据库连接 class DB { //存储实例的静态成员变量 static public $_instance; //数据库连接静态变量 static public $_connectSource; //连接数据库配置,由于前几天学习了PDO,这里就使用PDO private $_dbConfig

  • mysql数据库太大了如何备份与还原

    命令:mysqlhotcopy 这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件中,以避免拷贝到不完整的数据文件,是最安全快捷的备份方法. 命令的使用方法是: mysqlhotcopy -u root -p<rootpass> db1 db2 - dbn <output_dir> 如果需要备份全部数据库,可以加上–regexp=".*"参数. Mysqlhotcopy命令可自动完成数据锁定工作,备份时不用关闭服务器. 它还可以刷新日志,使备份文件和日志

  • MySQL数据库存储过程和事务的区别讲解

    事务是保证多个SQL语句的原子型的,也就是要么一起完成,要么一起不完成 存储过程是把一批SQL语句预编译后放在服务器上,然后可以远程调用 存储过程: 一组为了完成特定功能的SQL语句集(或者自定义数据库操作命令集), 根据传入的参数(也可以没有), 通过简单的调用, 完成比单个SQL语句更复杂的功能, 存储在数据库服务器端,只需要编译过一次之后再次使用都不需要再进行编译:主要对存储的过程进行控制. 优点: 1.执行速度快.尤其对于较为复杂的逻辑,减少了网络流量之间的消耗,另外比较重要的一点是存储

  • 谈谈数据库的字段设计的几个心得

    数据库的字段设计有很多细节性的技巧,下面将过去在开发中体会到经验整理出来,做个备忘. tinyint 是-128到128 .当属性设置为unsigned的时候.最大值就是255了.现在知道为什么需要设置为unsigned属性了.原来是为了最大限度的使用给予的存储空间.如果不设置.那么假如你的值都是正数的.那么-128这一百多个数字就相当于是浪费了. tinyint会自动设置为tinyint(3). smallint 不设置unsigned的时候,也有3万多的样子. tinytext 就是255个

  • MySQL数据库大小写敏感的问题

    在MySQL中,数据库对应数据目录中的目录.数据库中的每个表至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎).因此,所使用操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性.这说明在大多数Unix中数据库名和表名对大小写敏感,而在Windows中对大小写不敏感. 一个显著的例外情况是Mac OS X,它基于Unix但使用默认文件系统类型(HFS+),对大小写不敏感. 在windows下表名不区分大小写,所以在导入数据后,有可能所有表名均为小写,而再从win导入linux后,在

  • 数据库SQL SELECT查询的工作原理

    作为Web开发人员,虽并非专业的DBA,但我们总是离不开数据库.一般开发员只会应用SQL的四条经典语句:select,insert,delete,update.以至于从来没有研究过它们的工作原理,在这里我们说一说select在数据库中的工作原理. B/S架构中最经典的话题无非于三层架构,可以大概分为数据层,业务逻辑层和表示层,而数据层的作用一般都是和数据库交互,例如查询记录.我们经常是写好查询SQL,然后调用程序执行SQL.但是它内部的工作流程是怎样的呢?先做哪一步,然后做哪一步等,我想还有大部

  • Mysql主从数据库(Master/Slave)同步配置与常见错误

    随着访问量的增加,对于一些比较耗时的数据库读取操作,一般采用将写入与读取操作分开来缓解数据库的压力,数据库引擎一般采用Master/Slave架构.实现mysql服务器的主从配置,可以实现读写分离,另外在主数据库崩溃后可以从备用数据库中恢复数据以不至于网站中断访问.下面简单说下mysql主从服务器配置的过程. 首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务. 主机A: 192.168.1.100 从机B: 192.168.1.101 可以有多台

随机推荐