入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

MYSQL的SYS数据库

创建时间:2018-05-03 投稿人: 浏览次数:203

 

Sys库里的数据来源

 

Sys库所有的数据源来自:performance_schema。目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容。让DBA更快的了解DB的运行情况。

 

Sys库下有两种表

字母开头: 适合人阅读,显示是格式化的数

x$开头 : 适合工具采集数据,原始类数据

 

每类表大概介绍

sys_开头是库里的配置表:

sys_config用于sys schema库的配置

 

视图:

host : 以IP分组相关的统计信息

innodb : innodb buffer 相关信息

io : 数据内不同维度展的IO相关的信息

memory : 以IP,连接,用户,分配的类型分组及总的占用显示内存的使用

metrics : DB的内部的统计值

processlist : 线程相关的信息(包含内部线程及用户连接)

ps_ : 没有工具统计的一些变量(没看出来存在的价值)

schema : 表结构相关的信息,例如: 自增,索引, 表里的每个字段类型,等待的锁等等

session : 用户连接相关的信息

statement : 基于语句的统计信息(重店)

statements_ : 出错的语句,进行全表扫描, 运行时间超长,排序相等(重点)

user_ : 和host_开头的相似,只是以用户分组统计

wait :  等待事件,比较专业,难看懂。

waits : 以IP,用户分组统计出来的一些延迟事件,有一定的参考价值。

 

Sys库能做什么,那么我们先来看看以下的问题,对于数据库,你有没有以下的疑问?

1. 谁使用了最多的资源? 基于IP或是用户?

2. 大部分连接来自哪里及发送的SQL情况?

3. 机器执行多的SQL语句是什么样?

4. 哪个文件产生了最多的IO,它的IO模式是怎么样的?

5. 那个表的IO最多?

6. 哪张表被访问过最多?

7. 哪些语句延迟比较严重?

8. 哪些SQL语句使用了磁盘临时表

9. 哪张表占用了最多的buffer pool

10. 每个库占用多少Buffer pool

11. 每个连接分配多少内存?

12. MySQL内部现在有多个线程在运行?

 

 

mysql> select * from host_summaryG

*************************** 1. row***************************

                  host: localhost #从哪个服务器链接过来的 如果为null 表示内部链接

           statements: 203  这台服务器执行了多少语句

    statement_latency: 105.45 ms 这台服务器发来等待语句执行时间

 statement_avg_latency: 519.45 us 该服务器等待语句执行的平均时间

          table_scans: 7 该服务器扫描表的次数(非全表)

              file_ios: 795 该服务器i/o时间请求的次数

      file_io_latency: 27.43 ms  该服务器请求等待i/o的时间

  current_connections: 1 该服务器当前的连接数

    total_connections: 1 该服务器总db共链接多少次

         unique_users: 1  该服务器上有几个不同用户账户连接过来

       current_memory: 0 bytes 该服务器上当前链接等占用的内存

total_memory_allocated: 0 bytes 该服务器上的请求总共使用内存量

 

 mysql>select host,current_connections from host_summary;

+-----------+---------------------+

| host      |current_connections |

+-----------+---------------------+

| localhost |                   1 |

+-----------+---------------------+

----------------------------------------------------------------------------------------------------

| host_summary 

#主机概要

host: 监听连接过的主机

statements 当前主机执行的语句总数

statement_latency 语句等待时间

statement_avg_latency 执行语句平均延迟时间

table_scans 表扫描次数

file_ios io时间总数

file_io_latency 文件io 延迟

current_connections 当前连接数

total_connections: 总连接数

unique_users: 改主机唯一用户数

current_memory: 当前账户分配的内存

total_memory_allocated: 该主机内存总数

------------------------------------------------------------------------------------------------------

| host_summary_by_file_io

host 主机

ios: io事件总数

io_latency io总的延迟时间

--------------------------------------------------------------------------------------------------------------------

 

| host_summary_by_file_io_type

host: 主机

event_name io事件名称

total: 该主机发生的事件

total_latency: 该主机发生io 时间总延迟时间

max_latency: 该主机io 事务中最大的延迟时间

-----------------------------------------------------------------------------------------------------------------------------

| host_summary_by_stages

host 主机

event_name stage event名称

total: stage event发生的总数

total_latency stage event总的延迟时间

avg_latency stage event 平均延迟时间

----------------------------------------------------------------------------------------------------------------

| host_summary_by_statement_latency

host: 主机

total: 这个主机的语句总数

total_latency: 这个主机总的延迟时间

max_latency: 主机最大的延迟时间

lock_latency: 等待锁的锁延迟时间

rows_sent:  该主机通过语句返回的总行数

rows_examined: 在存储引擎上通过语句返回的行数

rows_affected: 该主机通过语句影响的总行数

full_scans: 全表扫描的语句总数

--------------------------------------------------------------------------------------------------------------------------

| host_summary_by_statement_type

host: 主机

statement: 最后的语句时间名称

total:  sql语句总数

total_latency: sql语句总延迟数

max_latency: 最大的sql语句延迟数

lock_latency: 锁延迟总数

rows_sent: 语句返回的行总数

rows_examined: 通过存储引擎的sql语句的读取总行数

rows_affected: 语句影响的总行数

full_scans:  全表扫描的语句事件总数

----------------------------------------------------------------------------------------------------------------------------------------------------------

| innodb_buffer_stats_by_schema

每个库占用多少 buffer pool

object_schema: 数据库的名称

allocated:分配给当前数据库的总的字节数

data: 分配给当前数据的数据字节

pages: 分配给当前数据库的总页数

pages_hashed: 分配给当前数据库的hash页数

pages_old: 分配给当前数据库的旧页数

rows_cached: 当前数据库缓存的行数

------------------------------------------------------------------------------------------------------------------------

| innodb_buffer_stats_by_table

#那张表 占用最多的 buffer pool

select * from innodb_buffer_stats_by_table order bypages desc limit 10;

object_schema: 数据库的名称

object_name: 表名称

allocated: 分配给表的总字节数

data: 分配该表的数据字节数

pages: 分配给表的页数

pages_hashed: 分配给表的hash页数

pages_old: 分配给表的旧页数

rows_cached: 表的行缓存数

 

#那张表的io最多

select * from io_global_by_file_by_bytes limit 10G

-----------------------------------------------------------------------------------------------------------------------------------------------

| innodb_lock_waits

显示当前实例的锁情况

wait_started 锁等待发生的实际

wait_age 锁已经等待了多长时间

wait_age_secs 以秒为单位显示已经等待的时间

locked_table 被锁的表

locked_index 被锁住的索引

locked_type 锁类型

waiting_trx_id 正在等待的事务id

waiting_trx_started 等待事务开始的时间

waiting_trx_age 已经等待事务多长时间

waiting_trx_rows_locked 正在等待的事务被锁的行数量

waiting_trx_rows_modified 正在等待行重定义数量

waiting_pid 正在等待事务的线程id

waiting_query 正在等待锁的查询

waiting_lock_id 正在等的锁的id

waiting_lock_mode 等待锁的模式

blocking_trx_id 阻塞等待锁的事务id

blocking_pid 正在锁的线程id

blocking_query 正在锁的查询

blocking_lock_id 正在阻塞等待锁的锁id

blocking_lock_mode 阻塞锁模式

blocking_trx_started 阻塞事务开始的实际

blocking_trx_age 阻塞的事务已经执行的时间

blocking_trx_rows_locked 阻塞事务锁住的行的数量

blocking_trx_rows_modified 阻塞事务重定义行的数量

sql_kill_blocking_query kill语句杀死正在运行的阻塞事务

sql_kill_blocking_connection kill 语句杀死会话中正在运行的阻塞事务

----------------------------------------------------------------------------------------------------------------------------------------

| io_by_thread_by_latency   

通过io的消耗展示io等待的时间

user:  对于当前线程来说 线程被分配的账户 后台线程线程的名称

total: io事件的总数

total_latency: io事件的总延迟数

min_latency: 单个最小的io事件延迟

avg_latency: 平均io延迟

max_latency: 最大io延迟

thread_id: 线程id

processlist_id: 对于当前线程就是此时的id 对于后台就是null

-----------------------------------------------------------------------------------------------------------------------------------

 

 

| io_global_by_file_by_latency

file: 文件路径名

total:  i/o事务的总数量

total_latency: i/o事务总等待时间

count_read: i/o读文件总数

read_latency: i/o事务读文件总数

count_write: i/o事务写文件总数

write_latency: i/o事务总等待时间写文件

count_misc: i/o事务的总数文件

misc_latency: i/o 事务总等待时间

-----------------------------------------------------------------------------------------------------------------------------------------

| io_global_by_wait_by_bytes

event_name: i/o事件名

total: i/o事件总数

total_latency: i/o时间总等待时间

min_latency: i/o最小等待时间

avg_latency: i/o平均等待时间

max_latency: i/o最大等待时间

count_read: i/o读请求数量

total_read: i/o读取字节数

avg_read: i/o 平均读字节数

count_write: i/o 写请求数量

total_written: i/o 写的字节数

avg_written: i/o 平均写字节数

total_requested: i/o读取和写入的字节总数

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

| io_global_by_wait_by_latency

event_name: i/o事件名称

total: i/o事件总数

total_latency: i/o总等待时间

avg_latency: i/o平均等待时间

max_latency: i/o 最大等待

read_latency: i/o 读等待时间

write_latency: i/o 写等待时间

misc_latency: i/o 总等待时间

count_read: i/o读请求数量

total_read: i/o读取字节数

avg_read: i/o平均读取字节数

count_write: i/o写请求数

total_written:i/o 写的字节数

avg_written: 平均写字节数

-----------------------------------------------------------------------------------------------------------------

| latest_file_io

thread  前台线程 与线程相关联的账户 后台线程  线程的名字和线程id

file  文件路径名

latency  io等待时间文件

operation 操作类型

requested i/o 请求的数据字节的文件

---------------------------------------------------------------------------------------------------------------------------

| memory_by_host_by_current_bytes

host: 客户端连接的主机

current_count_used: 尚未释放内存块的数目

current_allocated: 当前主机内存没有被释放字节

current_avg_alloc: 当前分配的自己数

current_max_alloc: 最大的单一内存分配 字节

total_allocated: 主机的内存分配总数  字节

--------------------------------------------------------------------------------------------------------------------------------------------------------------

| memory_by_thread_by_current_bytes

每个连接分配多少内存

selectb.user,current_count_used,current_allocated,current_avg_alloc,current_max_alloc,total_allocated,current_statementfrom memory_by_thread_by_current_bytes a, session b where a.thread_id=b.thd_id;

 thread_id: 线程id

user: 线程用户或者线程名称

current_count_used: 当前数量尚未释放线程

current_allocated: 尚未释放线程

current_avg_alloc: 线程的内存块

urrent_max_alloc: 最大单一线程内存分配

  total_allocated: 线程的内存分配字节总数

--------------------------------------------------------------------------------------------------------------------

| memory_by_user_by_current_bytes

user: 客户端用户名

current_count_used: 当前用户还没有被释放内存

current_allocated: 用户还没有被释放内存 字节

current_avg_alloc: 当前用户分配每个内存 字节

current_max_alloc: 最大单一用户内存分配 字节

total_allocated: 用户总内存 字节

------------------------------------------------------------------------------------------------------------------------------------

| memory_global_by_current_bytes

event_name: 事件名称

current_count: 事件总数

current_alloc: 事件分配内存没有被释放

current_avg_alloc: 事件内存分配字节数

high_count: 内存的高水位

high_alloc: 内存的高水位 字节

high_avg_alloc: 高水位平均 字节

-------------------------------------------------------------------------------------

| memory_global_total

total_allocated 服务器总内存分配

 

| metrics

 

---------------------------------------------------------------------------------------------

| processlist

mysql 内部的线程类型和数量

mysql> select user,count(*) from processlistgroup by user;

thd_id: 线程id

conn_id: 连接id

user: 线程用户或者线程名称

db: 线程的默认数据库

command: 前台线程 线程正在执行命令

state: 事件或者状态

time: 时间间隔 以秒为单位

current_statement: 正在执行线程

statement_latency: 语句执行多长时间

progress: 工作完成百分比

lock_latency: 所花费时间等待锁

rows_examined: 从存储引擎读取行数

rows_sent: 当前语句所返回的行数

rows_affected: 当前语句受影响的行数

tmp_tables: 内存临时表

tmp_disk_tables: 磁盘上的临时表

full_scan: 执行语句全表扫描

last_statement: 语句执行的线程

last_statement_latency: 语句执行多长时间

current_memory: 线程分配字节数

last_wait: 事件的线程名称

ast_wait_latency: 时间线程等待时间

source: 源文件和行 包含的事件

trx_latency: 线程的当前事务的等待时间

trx_state: 线程当前事务状态

trx_autocommit: 是否自动提交

pid: 客户端进程id

program_name: 客户端程序的名字

-----------------------------------------------------------------------------------------------

 

| ps_check_lost_instrumentation

variable_name: 性能模式状态和名称

variable_value: 数量

--------------------------------------------------------------------------------------------

| schema_auto_increment_columns

table_schema: 表名

table_name: 库名

column_name: id

data_type: 列的数据类型

column_type: 列的列类型

is_signed:

is_unsigned: 0

max_value: 最大允许的值列

auto_increment: 1

auto_increment_ratio: 比率列值

---------------------------------------------------------------------------------------------------------------------

| schema_index_statistics          介绍的是实例下所有库里的索引的信息

table_schema: 库名

table_name: 表名

index_name: 索引名称

rows_selected: 使用索引读取的总行数

select_latency: 读取索引总等待时间

rows_inserted: 插入行总索引数

insert_latency: 插入索引总等待时间

rows_updated: 更新索引总行数

update_latency: 更新索引总等待时间

 rows_deleted: 从索引删除总行数

delete_latency: 删除索引总等待时间

 

mysql> select * from schema_index_statisticswhere table_schema="test" and table_name="test2" G;

*************************** 1. row***************************

 table_schema: test

   table_name: test2

   index_name: test2_id

 rows_selected: 0

select_latency: 0 ps

 rows_inserted: 0

insert_latency: 0 ps

 rows_updated: 0

update_latency: 0 ps

 rows_deleted: 0

delete_latency: 0 ps

1 row in set (0.00 sec)

 

-----------------------------------------------------------------------------------------------------------

| schema_object_overview  可以知道当前数据库模式下有多少种类型的对象和对象个数                                  

db: 数据名称

object_type: 类型

 count: 数量

 

mysql> select * from schema_object_overviewwhere db="sys";

+-----+---------------+-------+

| db  |object_type   | count |

+-----+---------------+-------+

| sys | BASE TABLE    |    1 |

| sys | INDEX (BTREE) |     1 |

| sys | TRIGGER       |    2 |

| sys | FUNCTION      |   22 |

| sys | PROCEDURE     |   26 |

| sys | VIEW          |  100 |

+-----+---------------+-------+

6 rows in set (0.06 sec)

 

------------------------------------------------------------------------------------------

| schema_redundant_indexes

冗余索引

table_schema

table_name 表名

redundant_index_name 冗余索引名称

redundant_index_columns 冗余索引的列名称

redundant_index_non_unique  冗余索引中的列的数量

dominant_index_name 索引名称

dominant_index_columns 列的名称

dominant_index_non_uniqu

subpart_exists 是否索引一部分

sql_drop_index 要执行的语句 删除冗余索引

------------------------------------------------------------------------------------------------------------

| schema_table_lock_waits

被阻塞等待锁

object_schema 锁定名

object_name 检测名

waiting_thread_id 等待的线程id

waiting_pid processlist id 等待锁

waiting_account 与会话关联的账户 等待锁

waiting_lock_type 等待锁类型

waiting_lock_duration 多长时间锁等待

waiting_query等待锁的声明

waiting_query_secs 一直等待多长时间

waiting_query_rows_affected  影响的行数

waiting_query_rows_examined 从存储引擎读取的行数

blocking_thread_id 线程的线程id阻塞等待锁

blocking_pid processlist id的线程阻塞等待锁

blocking_account 与线程相关联的账户阻塞等待锁

blocking_lock_type 锁阻塞等待的锁类型

blocking_lock_duration 锁阻塞被持有多长时间

sql_kill_blocking_querykiil 语句杀死阻塞语句

sql_kill_blocking_connection kill语句执行运行阻塞会话语句

----------------------------------------------------------------------------------------------------------------------------------------------

| schema_table_statistics

统计表的信息

table_schema: 库名称

table_name: 表名

total_latency: i/o 总等待时间

 rows_fetched: 从表读取行数总数

fetch_latency: i/o总等待时间

rows_inserted: 行插入到表中时间

 insert_latency: i/o总等待插入时间

 rows_updated: 表中总更新行数

update_latency: i/o总等待更新时间

rows_deleted: 表中删除的行数

delete_latency: i/o总等待删除时间

io_read_requests: 表读取请求总数

io_read: 从表读取字节总数

io_read_latency: 从表读取总时间

io_write_requests: 表写请求总数

io_write: 写入的自己总数

io_write_latency: 写的总等待时间

io_misc_requests: i其他/o请求总数

io_misc_latency: i/o总等待时间

----------------------------------------------------------------------------------------------------------------------------------

 

| schema_table_statistics_with_buffer

table_schema: 库名

table_name: 表名

rows_fetched: 从表读取总行数

fetch_latency: 读取总等待时间

rows_inserted: 插入表中总数

insert_latency: 插入等待总时间

rows_updated: 表中更新行数

update_latency: 更新表中i/o总等待时间

rows_deleted: 表中删除的行数

delete_latency: 删除表中i/o总等待时间

io_read_requests: 表中读取总数

io_read: 表中读取字节总数

io_read_latency: 表中读取总等待时间

io_write_requests: 表的写请求总数

io_write: 写的字节总数

io_write_latency: 写的总等待时间

io_misc_requests: 其他i/o请求表

io_misc_latency: i/o请求总等待时间

innodb_buffer_allocated: innodb缓冲区字节

innodb_buffer_data: innodb数据字节分配表

innodb_buffer_free: innodb nondata 字节分配表

innodb_buffer_pages: innodb页面分配表

innodb_buffer_pages_hashed: innodb 页面分配表

innodb_buffer_pages_old: innodb旧页分配表

innodb_buffer_rows_cached: innodb缓存表行

-------------------------------------------------------------------------------------------------------------------

| schema_tables_with_full_table_scans    查看那些表走了全表扫描,性能情况

object_schema 库名

object_name 表名

rows_full_scanned 全表扫描总行数

latency 全表扫描总等待时间

---------------------------------------------------------------------------------------------------------------------

| schema_unused_indexes

使用索引的表

object_schema 库名

object_name 表名

index_name 未使用的索引名称

---------------------------------------------------------------------------------------------------------------------

| session             

  # 当前执行的sql

thd_id: 30

conn_id: 2

user: root@localhost

db: sys

command: Query

state: Sending data

time: 0

current_statement: select * from session

statement_latency: 1.47 ms

progress: NULL

lock_latency: 751.00 us

rows_examined: 0

rows_sent: 0

rows_affected: 0

tmp_tables: 4

tmp_disk_tables: 1

full_scan: YES

last_statement: NULL

last_statement_latency: NULL

current_memory: 0 bytes

ast_wait: NULL

last_wait_latency: NULL

source: NULL

trx_latency: NULL

trx_state: NULL

trx_autocommit: NULL

pid: 2698

program_name: mysql

-----------------------------------------------------------------------------------------------------------------

| session_ssl_status

显示ssl版本和密码

thread_id  连接的线程id

ssl_version 使用ssl的版本

ssl_cipher ssl连接的密码

ssl_sessions_reused 重用ssl会话连接数量

---------------------------------------------------------------------------------------------------------------

| statement_analysis        

  #那张表访问次数最多

query:  语句字符串

db: 默认数据库

full_scan: 执行全表扫描的总数出现的语句

exec_count: 执行语句总数

err_count: 错误的总数

warn_count: 警告的总数

total_latency: 总等待时间

max_latency: 最大单等待时间

avg_latency: 平均等待时间

lock_latency: 等待锁

rows_sent: 语句返回的行数

rows_sent_avg: 平均每个出现语句返回行数

rows_examined: 读取行数总数从存储引擎

rows_examined_avg: 平均读取的行数 从存储引擎

rows_affected: 受时间影响的行数

rows_affected_avg: 平均没出息的语句影响行数

tmp_tables:  内部内存临时表的总数

tmp_disk_tables: 内部磁盘上的临时表的总数

rows_sorted: 行总数

sort_merge_passes: 分类合并总数

digest:

first_seen: 第一次时间

 last_seen: 最近时间

------------------------------------------------------------------------------------------------------------------------------------------

| statements_with_errors_or_warnings

产生的错误或者警告

query    语句字符串  

db 数据库

exec_count 执行语句总数

errors 错误总数

error_pct 比例出现了错误

warnings 警告的总数

warning_pct 警告的比例

first_seen第一次的时间

last_seen最近的时间

digest声明

----------------------------------------------------------------------------------------------------------------------------------------------------------

| statements_with_full_table_scans

全表扫描

query: 语句字符串

db: 数据库

exec_count: 执行语句

total_latency: 总等待时间

no_index_used_count: 没有索引扫描表的总数

no_good_index_used_count: 用于扫描表的总数

no_index_used_pct: 没有索引扫描表的百分比

rows_sent: 表中返回的行数

rows_examined: 读取行的总数 在索引中

rows_sent_avg: 表中平均返回行数

rows_examined_avg: 读取行数平均从表的存储引擎

first_seen: 第一次时间

last_seen: 最近时间

digest: 声明

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

| statements_with_runtimes_in_95th_percentile  

query: 语句字符串

db: 数据库

full_scan: 执行全表扫描的总数语句

exec_count: 执行语句

err_count: 错误的总数

warn_count: 警告的总数

total_latency: 总等待时间

max_latency: 最大单等待时间

avg_latency: 平均但等待时间

rows_sent: 总出现的语句返回的行数

rows_sent_avg: 平均每个出现的语句返回行数

rows_examined: 读取行数的总数存储引擎

rows_examined_avg: 平均读取行数 存储引擎

first_seen: 第一次时间

last_seen: 最近时间

digest: 声明

------------------------------------------------------------------------------------------------------------------------------------------

| statements_with_sorting  

sort 排序相关                   

query: 语句字符串

db: 数据库

exec_count: 执行语句

total_latency: 总等待时间

sort_merge_passes: 分类合并经过出现总数

avg_sort_merges: 分类合并平均数量

sorts_using_scans: 使用表扫描语句总数

sort_using_range: 使用范围的访问总数

rows_sorted: 行总数

avg_rows_sorted: 平均每个出现的语句排序

first_seen: 第一次时间

last_seen: 最近时间

digest: 声明

----------------------------------------------------------------------------------------------------------------

| statements_with_temp_tables                  

临时表相关

query: 语句字符串

db: 数据库

exec_count: 执行语句

total_latency: 总等待时间

memory_tmp_tables: 内部l临时表的总数

disk_tmp_tables: 磁盘上的临时表的总数

avg_tmp_tables_per_query: 平均每个出现的临时表

tmp_tables_to_disk_pct: 内部临时表的百分比转换为磁盘临时表

first_seen: 第一次时间

last_seen: 最近时间

digest: 声明

---------------------------------------------------------------------------------------------------------------

| sys_config      

#用于sys schema库的配置

 

-----------------------------------------------------------------------------------------------                              

| user_summary

user: 客户端用户名

statements:  用户总数的语句

 statement_latency: 用户总等待的时间

 statement_avg_latency: 每个时间的平均等待时间

 table_scans:用户的表扫描

file_ios:用户文件i/o总数

 file_io_latency: 用户i/o总等待时间

current_connections: 用户当前连接数

total_connections: 用户的连接总数

unique_hosts: 用户不同主机的连接数

current_memory: 用户当前分配的内存数量

total_memory_allocated: 用户分配内存数量总数

---------------------------------------------------------------------------------------------

| user_summary_by_file_io

user: 客户端用户名

 ios: 用户文件i/o总数

io_latency: 用户文件总等待时间

--------------------------------------------------------------------------------------------------------

| user_summary_by_file_io_type

user: 客户端用户名

event_name: 文件i/o事件名称

total: 用户文件i/o出现总数

latency: 定时出现总等待时间

max_latency: 最大等待时间

--------------------------------------------------------------------------------------------------------------------

| user_summary_by_stages 

user: 客户端用户名

event_name: 文件i/o时间名称

total: 事件总数

total_latency: 总等待时间

 avg_latency:平均等待时间

 

----------------------------------------------------------------------------------------------------------------

| user_summary_by_statement_latency

user: 客户端用户名

total: 为用户总数的语句

total_latency: 总等待时间

max_latency: 最大单一等待时间

lock_latency: 锁等待总时间

rows_sent: 用户通过语句返回的行数

rows_examined: 读取行数为用户存储引擎

rows_affected: 用户影响行数

full_scans: 全表扫描的总数

 

----------------------------------------------------------------------------------------------------------------

| user_summary_by_statement_type

user: 客户端用户名

statement: 最后的语句事件名称

total: 用户出现的总数

total_latency: 用户出现等待时间

max_latency: 用户最大单等待时间

lock_latency: 出现锁等待时间

rows_sent: 返回的行总数

rows_examined: 读取行数 从存储引擎语句发生

rows_affected: 受事件影响的行数

 full_scans: 全表扫描的总行数

 

---------------------------------------------------------------------------------------------------------------- 

| version

 sys_version:sys库版本

mysql_version: mysql版本

 

----------------------------------------------------------------------------------------------------------------

| wait_classes_global_by_avg_latency

event_class: 事件类

total: 总数

total_latency: 总等待时间

min_latency: 最小时间

avg_latency: 平均时间

max_latency: 最大时间

 

----------------------------------------------------------------------------------------------------------------

| wait_classes_global_by_latency

event_class: 事件类

total: 总数

total_latency: 总等待时间

min_latency: 最小时间

avg_latency: 平均时间

max_latency: 最大时间

 

----------------------------------------------------------------------------------------------------------------

| waits_by_host_by_latency

host: 主机名

event_class: 事件类

total: 总数

total_latency: 总等待时间

min_latency: 最小时间

avg_latency: 平均时间

max_latency: 最大时间

 

---------------------------------------------------------------------------------------------------------------- 

| waits_by_user_by_latency

user: 客户端用户名

event_class: 事件类

total: 总数

total_latency: 总等待时间

min_latency: 最小时间

avg_latency: 平均时间

max_latency: 最大时间

 

 

----------------------------------------------------------------------------------------------------------------

| waits_global_by_latency   

event_class: 事件类

total: 总数

total_latency: 总等待时间

min_latency: 最小时间

avg_latency: 平均时间

max_latency: 最大时间

 

----------------------------------------------------------------------------------------------------------------

 

Innodb_buffer_stats_by_table

和innodb_buffer_stats_by_schema基本一致。只是比上面多了个object_name指定表名。

 

1. 谁使用了最多的资源? 基于IP或是用户?

对于该问题可以从host, user, io三个方面去了解,大概谁的请求最多。对于使用资源问题可以直接从下面四个视图里有一个大概的了解。

   Select*from host_summary limit 1G

   Select*fromio_global_by_file_by_bytes limit 1G

   Select*from user_summary limit 1G

   Select*from memory_global_total;

 

   注意内存部分,不包括innodbbufferpool。只是server 层申请的内存

 

2. 大部分连接来自哪里及发送的SQL情况

查看当前连接情况:

select host, current_connections,statements fromhost_summary;

查看当前正在执行的SQL:

select conn_id, user, current_statement,last_statement from session;

 

3. 机器执行最多的SQL语句是什么样?

例如查一下系统里执行最多的TOP 10 SQL。

SQL如下:

select * from statement_analysis orderbyexec_count desc limit 10G;

 

4. 哪张表的IO最多?哪张表访问次数最多

select * from io_global_by_file_by_byteslimit10;(参见上面表格说明)

哪张表访问次数最多,可以参考上面先查询执行最多的语句,然后查找对应的表。

SQL如下:

select * from statement_analysis orderbyexec_count desc limit 10G;

 

5. 哪些语句延迟比较严重

statement_analysis中avg_latency的最高的。(参考上面写法)

SQL语句:

select * from statement_analysis orderbyavg_latency desc limit 10;

 

6. 哪些SQL语句使用了磁盘临时表

利用statement_analysis 中tmp_tables ,tmp_disk_tables 进行计算。(参考上面写法)

参考SQL:

select db, query,tmp_tables,tmp_disk_tables  from statement_analysiswhere tmp_tables>0or tmp_disk_tables >0 order by(tmp_tables+tmp_disk_tables) desc limit 20;

 

7. 哪张表占用了最多的buffer pool

例如查询在buffer pool中占用前10的表。

SQL如下:

select * from innodb_buffer_stats_by_tableorderby pages desc limit 10;

 

8. 每个库占用多少buffer pool

SQL如下:

select * frominnodb_buffer_stats_by_schema;

 

9. 每个连接分配多少内存

利用session表和memory_by_thread_by_current_bytes分配表进行关联查询。

SQL如下:

select b.user, current_count_used,current_allocated,current_avg_alloc, current_max_alloc,total_allocated,current_statement frommemory_by_thread_by_current_bytes a,session b where a.thread_id = b.thd_id;

 

10. MySQL内部现在有多个线程在运行

MySQL内部的线程类型及数量:

select user, count(*) from processlistgroup byuser;

 

 

 ---------------------------------------------------------------------------------------------------------------

参考了很多大师的博客,整理了和实验总结了这个文档。

文章中有歧义的地方留言互相探讨

 

 

阅读更多
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像