MySQL运行时的可观测性 观察MySQL运行时的可见性(2)
导读:MySQL运行时的可观测性,看到需要全索引扫描(其实也等同于全表扫描,因为是基于PRIMARY索引),并且还需要生成临时表,以及额外的filesort。 在正式运行该SQL之前,在另外的窗
MySQL运行时的可观测性
看到需要全索引扫描(其实也等同于全表扫描,因为是基于PRIMARY索引),并且还需要生成临时表,以及额外的filesort。
在正式运行该SQL之前,在另外的窗口中新建一个连接会话,执行下面的SQL先观察该连接/会话当前的内存分配情况:
greatsql> select * from sys.x$memory_by_thread_by_current_bytes where thread_id = 207\G
*************************** 1. row ***************************
thread_id: 207
user: root@localhost
current_count_used: 9
current_allocated: 26266
current_avg_alloc: 2918.4444
current_max_alloc: 16464
total_allocated: 30311
等到该SQL执行完了,再一次查询内存分配情况:
greatsql> select * from sys.x$memory_by_thread_by_current_bytes where thread_id = 207\G
*************************** 1. row ***************************
thread_id: 207
user: root@localhost
current_count_used: 13
current_allocated: 24430
current_avg_alloc: 1879.2308
current_max_alloc: 16456
total_allocated: 95719
我们注意到几个数据的变化情况,用下面表格来展示:
| 指标 | 运行前 | 运行后 |
|---|---|---|
| total_allocated | 30311 | 95719 |
也就是说,SQL运行时,需要分配的内存是:95719 – 30311 =65408字节。
3.2 观测SQL运行时的其他开销
通过观察performance_schema.status_by_thread表,可以知道相应连接/会话中SQL运行的一些状态指标。在SQL运行结束后,执行下面的SQL命令即可查看:
greatsql> select * from performance_schema.status_by_thread where thread_id = 207;
...
| 207 | Created_tmp_disk_tables | 0 |
| 207 | Created_tmp_tables | 0 |
...
| 207 | Handler_read_first | 1 |
| 207 | Handler_read_key | 1 |
| 207 | Handler_read_last | 0 |
| 207 | Handler_read_next | 2844047 |
| 207 | Handler_read_prev | 0 |
| 207 | Handler_read_rnd | 0 |
| 207 | Handler_read_rnd_next | 0 |
| 207 | Handler_rollback | 0 |
| 207 | Handler_savepoint | 0 |
| 207 | Handler_savepoint_rollback | 0 |
| 207 | Handler_update | 0 |
| 207 | Handler_write | 0 |
| 207 | Last_query_cost | 286802.914893 |
| 207 | Last_query_partial_plans | 1 |
...
| 207 | Select_full_join | 0 |
| 207 | Select_full_range_join | 0 |
| 207 | Select_range | 0 |
| 207 | Select_range_check | 0 |
| 207 | Select_scan | 1 |
| 207 | Slow_launch_threads | 0 |
| 207 | Slow_queries | 1 |
| 207 | Sort_merge_passes | 0 |
| 207 | Sort_range | 0 |
| 207 | Sort_rows | 1 |
| 207 | Sort_scan | 1 |
...
相关阅读
-
虚拟化ESXi常见故障问题及解决方案
为网友们详解虚拟化ESXi常见故障问题及解决方案的介绍,相关内容具体如下: 一、 针对VMWare集群相关问题 1.1 问题 1) ESXi集群资源不足,存在很多虚拟机,配置很高,资源利用率很低;业务
-
vSphere之VMkernel网络层
今日重点为您介绍vSphere之VMkernel网络层方面的内容,请看下面详细的介绍。 VMkernel 网络层用于VSS(标准交换机),提供与主机的连接,并处理 vSphere vMotion、IP 存储、Fault Tolerance、vSAN 等其他服
-
广域网 WAN的主要特点是什么
如果想知道的相关介绍,接下来IT袋网小编为大家介绍。 广域网(Wide Area Network)跨越更大的地理区域,通常连接不同城市、国家甚至大洲的设备。 特点 广泛范围: WAN的范围非常广泛,可以连
-
UDP是什么协议? UDP的主要特点和功能
为网友们详解UDP是什么协议的相关经验,接下来IT袋网带大家一起了解。 UDP(用户数据报协议,User Datagram Protocol)是一种传输层协议,用于在网络中的两个节点(例如计算机、服务器等)之间


