千家信息网

如何查看mysql的运行状态

发表于:2024-09-24 作者:千家信息网编辑
千家信息网最后更新 2024年09月24日,本篇内容主要讲解"如何查看mysql的运行状态",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何查看mysql的运行状态"吧!查看最近的top sql通过
千家信息网最后更新 2024年09月24日如何查看mysql的运行状态

本篇内容主要讲解"如何查看mysql的运行状态",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何查看mysql的运行状态"吧!


查看最近的top sql

通过performance_schema.events_statements_history表,查看数据库最近执行的一些sql语句:

(root@localhost)[(none)]> SELECT thread_id    ,event_name    ,source    ,sys.format_time(timer_wait)    ,sys.format_time(lock_time)    ,sql_text    ,current_schema    ,message_text    ,rows_affected    ,rows_sent    ,rows_examined    FROM performance_schema.events_statements_history    WHERE current_schema != 'performance_schema'    ORDER BY timer_wait DESC limit 10 \G                *************************** 1. row ***************************                  thread_id: 561166                 event_name: statement/sql/select                     source: socket_connection.cc:101sys.format_time(timer_wait): 53.64 ms sys.format_time(lock_time): 429.00 us                   sql_text: select * from oa_v_position_list             current_schema: oa_2016               message_text: NULL              rows_affected: 0                  rows_sent: 4              rows_examined: 18051*************************** 2. row ***************************                  thread_id: 153896                 event_name: statement/sql/select                     source: socket_connection.cc:101sys.format_time(timer_wait): 51.76 ms sys.format_time(lock_time): 96.00 us                   sql_text: select count(id) as num from formmain_2477 where  (field0003 =  'SJCL-201911008' and  ifnull(field0003, '0') != '0')             current_schema: oa_2016               message_text: NULL              rows_affected: 0                  rows_sent: 1              rows_examined: 222*************************** 3. row ***************************....

我们可以使用performance_schema.events_statements_summary_by_digest表查询经过统计之后的top sql语句:

(root@localhost)[(none)]> SELECT schema_name        ,digest_text        ,count_star        ,sys.format_time(sum_timer_wait) AS sum_time        ,sys.format_time(min_timer_wait) AS min_time        ,sys.format_time(avg_timer_wait) AS avg_time        ,sys.format_time(max_timer_wait) AS min_time        ,sys.format_time(sum_lock_time) AS sum_lock_time        ,sum_rows_affected        ,sum_rows_sent        ,sum_rows_examinedFROM performance_schema.events_statements_summary_by_digestWHERE schema_name IS NOT NULLORDER BY count_star DESC limit 10 \G            *************************** 1. row ***************************      schema_name: oa_2016      digest_text: SET `autocommit` = ?        count_star: 1604399319         sum_time: 13.57 h         min_time: 2.00 ns         avg_time: 30.46 us         min_time: 39.87 s    sum_lock_time: 0 pssum_rows_affected: 0    sum_rows_sent: 0sum_rows_examined: 0*************************** 2. row ***************************      schema_name: oa_2016      digest_text: COMMIT        count_star: 368723348         sum_time: 4.15 h         min_time: 10.07 us         avg_time: 40.52 us         min_time: 21.54 s    sum_lock_time: 40.27 ssum_rows_affected: 0    sum_rows_sent: 0sum_rows_examined: 0*************************** 3. row ***************************      schema_name: oa_2016      digest_text: SELECT * FROM `jk_JOB_DETAILS` WHERE `SCHED_NAME` = ? AND `JOB_NAME` = ? AND `JOB_GROUP` = ?        count_star: 361183117         sum_time: 19.88 h         min_time: 5.00 ns         avg_time: 198.10 us         min_time: 4.97 s    sum_lock_time: 4.93 hsum_rows_affected: 0    sum_rows_sent: 361182289sum_rows_examined: 361182289......

提示:performance_schema.events_statements_summary_by_digest记录的sql并不完整,默认情况下只截取了1024字节,所以该表提供的数据只能算作慢日志分析的一个补充。如果需要完整sql文本,还得依赖慢日志分析。

查看最近失败的SQL

mysql> SELECT thread_id    ,event_name    ,source    ,sys.format_time(timer_wait)    ,sys.format_time(lock_time)    ,sql_text    ,current_schema    ,message_text    ,rows_affected    ,rows_sent    ,rows_examined    FROM performance_schema.events_statements_history    WHERE errors>0 \G         *************************** 1. row ***************************                  thread_id: 6172541                 event_name: statement/sql/select                     source: socket_connection.cc:101sys.format_time(timer_wait): 135.89 us sys.format_time(lock_time): 0 ps                   sql_text: SELECT id,waybill_num,oms_order_status FROM store_order       WHERE is_sync_css_status_end IS NULL OR is_sync_css_status_end!='01' ORDER BY create_time ASC, css_search_time ASC LIMIT 0,200             current_schema: oms               message_text: Table 'oms.store_order' doesn't exist              rows_affected: 0                  rows_sent: 0              rows_examined: 01 row in set (0.02 sec)

查看是MDL锁在等什么

# 查看MDL锁等待事件的instrments(采集器)是否开启mysql> SELECT *FROM performance_schema.setup_instrumentsWHERE name LIKE '%metadata/sql/mdl%';+----------------------------+---------+-------+| NAME                       | ENABLED | TIMED |+----------------------------+---------+-------+| wait/lock/metadata/sql/mdl | NO      | NO    |+----------------------------+---------+-------+1 row in set (0.00 sec)# 启用与MDL锁等待事件相关的instruments(采集器)mysql> update performance_schema.setup_instruments set ENABLED='YES' where name like '%metadata/sql/mdl%';Query OK, 1 row affected (0.00 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> update performance_schema.setup_instruments set TIMED='YES' where name like '%metadata/sql/mdl%';Query OK, 1 row affected (0.00 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from performance_schema.setup_instruments where name like '%metadata/sql/mdl%';+----------------------------+---------+-------+| NAME                       | ENABLED | TIMED |+----------------------------+---------+-------+| wait/lock/metadata/sql/mdl | YES     | YES   |+----------------------------+---------+-------+1 row in set (0.01 sec)# 然后使用sys.schema_table_lock_wait视图进行查询(注意:请自行模拟一个会话事务不提交,另外一个会话发生DDL的操作,就可以查看到MDL锁等待的内容)。mysql> select * from sys.schema_table_lock_waits \G

查看innodb_buffer_pool中热点数据有哪些

mysql> select * from  sys.innodb_buffer_stats_by_table order by allocated desc limit 10 ;+---------------+--------------------+------------+------------+-------+--------------+-----------+-------------+| object_schema | object_name        | allocated  | data       | pages | pages_hashed | pages_old | rows_cached |+---------------+--------------------+------------+------------+-------+--------------+-----------+-------------+| mysql         | help_keyword       | 96.00 KiB  | 43.99 KiB  |     6 |            6 |         6 |         283 || InnoDB System | SYS_COLUMNS        | 80.00 KiB  | 44.50 KiB  |     5 |            5 |         5 |         696 || mdm           | employee_jz        | 64.00 KiB  | 19.77 KiB  |     4 |            4 |         4 |         177 || mysql         | innodb_index_stats | 64.00 KiB  | 28.20 KiB  |     4 |            4 |         4 |         288 |

查看数据库中是否有表使用了外键

mysql> SELECT *FROM information_schema.key_column_usageWHERE constraint_schema = 'oms'        AND referenced_table_schema IS NOT NULL \G;                *************************** 1. row ***************************           CONSTRAINT_CATALOG: def            CONSTRAINT_SCHEMA: oms              CONSTRAINT_NAME: qrtz_blob_triggers_ibfk_1                TABLE_CATALOG: def                 TABLE_SCHEMA: oms                   TABLE_NAME: qrtz_blob_triggers                  COLUMN_NAME: SCHED_NAME             ORDINAL_POSITION: 1POSITION_IN_UNIQUE_CONSTRAINT: 1      REFERENCED_TABLE_SCHEMA: oms        REFERENCED_TABLE_NAME: qrtz_triggers       REFERENCED_COLUMN_NAME: SCHED_NAME*************************** 2. row ***************************           CONSTRAINT_CATALOG: def            CONSTRAINT_SCHEMA: oms

通常在开发规范中禁止使用外键。

查看每张表都有哪些索引

mysql> SELECT TABLE_SCHEMA        ,TABLE_NAME        ,INDEX_NAME        ,COLUMN_NAME        ,CARDINALITYFROM information_schema.STATISTICSGROUP BY TABLE_SCHEMA        ,TABLE_NAME limit 100;        +--------------+---------------------------+-------------------------+------------------+-------------+| TABLE_SCHEMA | TABLE_NAME                | INDEX_NAME              | COLUMN_NAME      | CARDINALITY |+--------------+---------------------------+-------------------------+------------------+-------------+| mdm          | department                | index_unique_department | deptid           |         381 || mdm          | employee                  | PRIMARY                 | sn               |        1544 || mdm          | employee_jz               | index_unique_employee   | sn               |        1626 |.......

查看数据库是否有分区表

mysql> select * from information_schema.partitions  where partition_name is not null;Empty set (0.02 sec)

mysql系统库之统计信息表

# 将表和索引的统计信息数据存储到磁盘中,默认是开启的(root@localhost)[mysql]> show variables like 'innodb_stats_persistent';+-------------------------+-------+| Variable_name           | Value |+-------------------------+-------+| innodb_stats_persistent | ON    |+-------------------------+-------+1 row in set (0.00 sec)# 持久化信息被存储在mysql数据库的如下两张表中:(root@localhost)[mysql]> show tables from mysql like '%stats%';+---------------------------+| Tables_in_mysql (%stats%) |+---------------------------+| innodb_index_stats        || innodb_table_stats        |+---------------------------+2 rows in set (0.00 sec)# innodb_stats_auto_recalc变量控制是否启用统计信息的自动重新计算功能,默认是开启的。如果启用,当表中的数据量超过10%时会触发统计信息自动重新计算功能(root@localhost)[mysql]> show variables like 'innodb_stats_auto_recalc'    -> ;+--------------------------+-------+| Variable_name            | Value |+--------------------------+-------+| innodb_stats_auto_recalc | ON    |+--------------------------+-------+1 row in set (0.00 sec)

到此,相信大家对"如何查看mysql的运行状态"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

数据 信息 统计 数据库 状态 运行 内容 查询 事件 功能 日志 索引 语句 采集器 分析 存储 学习 实用 更深 事务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金融行业软件开发公司 深圳和利顺网络技术有限公司 苏州营销网络技术哪个好 杭州众快互联网科技有限公司 华为服务器安全模式怎么进入 网络安全放诈骗手抄报 argus安全数据库 软件开发合同开什么票 数据库分类的好处 天津微信扫码点餐软件开发 东莞专业软件开发代理价格 宁河区口碑好的软件开发专业服务 廊职计算机网络技术课表 软件开发术语缩写 广州工行软件开发中心地址 浙江项目软件开发哪家正规 肇庆通信软件开发定做价格 GEO数据库如何寻找通路 服务器运维硬件更换报告 云南大学软件开发 坦克世界安全服务器 松江区数据软件开发哪家好 巅峰极客网络安全发展论坛 服务器管理器用什么软件查看 数据库oracle怎么执行 软件开发承包方式有哪几种 nba历史得分排名数据库 为什么登陆游戏服务器断开连接 委外软件开发合同 浙江潮流软件开发设施厂家现货
0