首页 > 数据库 >MySQL常用性能指标

MySQL常用性能指标

时间:2023-11-09 11:32:08浏览次数:47  
标签:status 常用 global like show MySQL mysql 性能指标 Log

一些MySQL的常用性能指标,可以对此增加一些自定义指标到数据库的监控里,如zabbix或者prometheus,来更好的检测数据库的状态。
MySQSL版本是5.7.19。因为是自己的测试环境,所以截图的一些指标很低,仅为大家展示查看参数的显示情况。

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.19    |
+-----------+
1 row in set (0.00 sec)

(1) QPS(每秒Query量)

QPS = Questions(or Queries) / seconds

mysql > show  global status like 'Question%';

MySQL常用性能指标_SQL

(2) TPS(每秒事务量)

TPS = (Com_commit + Com_rollback) / seconds

mysql > show global status like'Com_commit';
mysql > show global status like'Com_rollback';

MySQL常用性能指标_SQL_02

(3)key Buffer 命中率

key_buffer_read_hits = (1-key_reads /key_read_requests) * 100%
key_buffer_write_hits = (1-key_writes /key_write_requests) * 100%

mysql>show  global  status  like   'key%';

MySQL常用性能指标_慢查询_03

(4)InnoDB Buffer命中率

innodb_buffer_read_hits = (1 -innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%

mysql> show status like'innodb_buffer_pool_read%';

MySQL常用性能指标_监控_04

(5)Query Cache命中率

Query_cache_hits = (Qcahce_hits /(Qcache_hits + Qcache_inserts )) * 100%;

mysql> show status like 'Qcache%';

MySQL常用性能指标_性能指标_05

(6)Table Cache状态量

mysql> show global  status like 'open%';

比较 open_tables 与opend_tables 值

MySQL常用性能指标_SQL_06

(7)Thread Cache 命中率

mysql> show global status like'Thread%';
mysql> show global status like'Connections';

Thread_cache_hits = (1 - Threads_created /connections ) * 100%

MySQL常用性能指标_性能指标_07

(8)锁状态

mysql> show global  status like '%lock%';

Table_locks_waited/Table_locks_immediate=0.0% 如果这个比值比较大的话,说明表锁造成的阻塞比较严重,Innodb_row_lock_waits 和Innodb_row_lock_time_avg太大,说明锁争用比较严重,有可能是间隙锁造成的,可以查询information_schema数据库中相关表查看锁情况,或者通过设置InnoDB Monitors来进一步观察锁冲突的表、数据行等,分析原因。

MySQL常用性能指标_慢查询_08

(9)复制延时

mysql > show slave status;

查看延时
当前SQL线程运行的延时=Read_Master_Log_Pos-Exec_Master_Log_Pos

红框:
     Master_Log_File: mysql-bin.003590    //当前IO线程正在读取的主服务器二进制文件的名称
     Read_Master_Log_Pos: 331275450      //当前IO线程正在读取的二进制日志的位置
     Relay_Log_File: relaylog.009253     //SQL线程当前正在读取和执行的中继日志文件的名称
     Relay_Log_Pos: 331275665           //当前中继日志里,SQL线程已读取和执行的位置
     Relay_Master_Log_File: mysql-bin.003590     //由SQL线程执行的包含多数近期事件的主服务器二进制日志文件的名称

黄框:
     Slave_IO_Running: Yes         //IO线程是否被启动并成功的连接到主服务器上
     Slave_SQL_Running: Yes        //SQL线程是否被启动

蓝框:
     Last_Errno: 0                //是记录系统的最后一次错误代码
绿框:
     Exec_Master_Log_Pos: 331275450      //是SQL线程执行中继日志中相对于主库bin log的位点。Read_Master_Log_Pos减去Exec_Master_Log_Pos可以表示当前SQL线程运行的延时
     Relay_Log_Space: 331275954        //所有原有的中继日志结合起来的总大小

MySQL常用性能指标_监控_09

(10) Tmp Table 状况(临时表状况)

mysql > show status like 'Created_tmp%';

Created_tmp_disk_tables/Created_tmp_tables比值最好不要超过10%,如果Created_tmp_tables值比较大,可能是排序句子过多等原因。

MySQL常用性能指标_慢查询_10

(11) Binlog Cache 使用状况

mysql > show status like'Binlog_cache%';

如果Binlog_cache_disk_use值不为0 ,可能需要调大 binlog_cache_size大小

MySQL常用性能指标_性能指标_11

(12) Innodb_log_waits 量

mysql > show status like'innodb_log_waits';

Innodb_log_waits是等待日志缓冲刷出的次数,如果值不等于0的话,并且持续增长,表明 innodb log buffer 因为空间不足而等待,可以考虑增大innodb_log_buffer_size。

MySQL常用性能指标_性能指标_12

(13)open file and table

mysql> show global status like 'Open_files';
mysql> show global status like 'Open_tables';

MySQL常用性能指标_性能指标_13

(14) 慢查询

开启慢查询:

编辑/etc/my.cnf,在[mysqld]域中添加:
         slow_query_log= 1   # 开启慢查询
         slow_query_log_file=/data/mysql/slow.log   # 慢查询日志路径
         long_query_time= 1        # 慢查询的时长

查看慢查询数量:

[mysql@mogdb-kernel-0005 ~]$ mysqladmin -u root -pmysql status

MySQL常用性能指标_性能指标_14

(15)通用查询日志

查看通用查询日志状态:

mysql> show global variables like 'general_log';

MySQL常用性能指标_慢查询_15


开启通用查询日志:

mysql>  set global general_log=on;

注意开启通用查询日志会消耗服务器性能,一般只有在排查问题时才会短暂打开。

标签:status,常用,global,like,show,MySQL,mysql,性能指标,Log
From: https://blog.51cto.com/u_13482808/8274813

相关文章

  • mysql-utilities对比两个库数据一致性
    1.安装mysql-utilities首先yum源安装python,之后根据python版本下载安装mysql-connector-pythonyuminstallpythonpython--versionpython2.6.6下载地址:https://downloads.mysql.com/archives/c-python/rpm-ivhmysql-connector-python-2.1.6-1.el6.x86_64.rpmwhichpython之后......
  • Python逐行读取文件常用的三种方法!
    在Python中,读取文件是非常普遍的操作,而逐行读取文件则是最常见的需求。那么Python如何逐行读取文件?为大家介绍常用的三种方法,一起来看看吧。1、使用readline()方法逐行读取文件在Python中,我们可以使用readline()方法逐行读取文件。该方法用于读取文件的一行内容,并将文......
  • MySQL 单表数据最大不要超过多少行?为什么?
    1背景作为在后端圈开车的多年老司机,是不是经常听到过,“mysql单表最好不要超过2000w”,“单表超过2000w就要考虑数据迁移了”,“你这个表数据都马上要到2000w了,难怪查询速度慢”这些名言民语就和“群里只讨论技术,不开车,开车速度不要超过120码,否则自动踢群”,只听过,没试过......
  • mysql 优化之开启慢查询并分析原因
      第一步.开启mysql慢查询方式一:修改配置文件my.ini增加几行:slow_query_log=on#开启慢查询日志slow_query_log_file=filename#指定日志文件保存路径,不指定的话默认在数据库文件目录下,名为hostname-slow.loglong_query_time=2#指定达到多少秒才算慢查询long-que......
  • mysql常见问题及排查步骤
    问题一:数据库连接串测试报错:Couldnotcreateconnectiontodatabaseserver.504错误遇到数据库问题的通用排查步骤确定数据库没有挂确定远程可以连接(前两个可以通过在本地连接验证)以上都OK,大概率服务器ip被限制访问,如果不是人为限制,在可以访问的服务器连上对应数据库,执行......
  • mysql8.x通过备份文件及binlog日志恢复数据
    问题简述记一次mysql数据库被误删(是整个库被删了)后的还原前提条件数据库版本为mysql8.x以上具有库被删除前的完整备份数据库开启binlog还原步骤第一步:通过完整备份还原被删的库注意事项:还原后切勿让其他用户连接,操作数据库。待使用binlog日志恢复数据后再对库进行操作,否......
  • MySQL到底是 join 性能好,还是in一下更快呢?
    事情是这样的,去年入职的新公司,之后在代码review的时候被提出说,不要写join,join耗性能还是慢来着,当时也是真的没有多想,那就写in好了,最近发现in的数据量过大的时候会导致sql慢,甚至sql太长,直接报错了。这次来浅究一下,到底是in好还是join好,仅目前认知探寻,有不对之处欢迎指正以下实验仅......
  • 记录一次报错,程序启动,MySql自动关闭
    关于初级程序员,对于安装mysql,以及配置可能会报几次错有时候虽然进行第二次安装成功,但是第一次的残留文件还在,可能引起报错在这里记录一次我的报错程序启动导致Mysql自动断开,需要手动打开1、打开任务管理器,打开详细信息,发现界面有两个mysqld.exe如果你是使用单程序连接,或者你......
  • Windows中CMD的常用命令
    CMD(命令提示符)是Windows操作系统中的一个命令行工具,它可以让用户直接通过命令来操作系统。下面是一些Windows中CMD的常用命令,附带代码和详细说明。1.dir:列出当前目录中的文件和文件夹dir该命令会显示当前目录中的所有文件和文件夹的列表。2.cd:改变当前目录cd<目录路径>......
  • 爬虫-mysql-工具
    MySQL数据库一、MySQL数据库的介绍1、发展史1996年,MySQL1.02008年1月16号Sun公司收购MySQL。2009年4月20,Oracle收购Sun公司。MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。MySQL是开放源代码的,因此任......