如何获取MySQL中的查询和事务大小
有时候,了解事务的大小很重要。默认情况下,事务的大小是有限的,以保证集群的最佳行为。
首先要将事务分成两种类型:
1.生成数据的事务(写操作,比如insert、delete、update等DML操作)
2.只读的事务(查询操作)
我们需要从binlog文件中检查binlog事件,然后计算它的大小。为了说明这一点,让我们尝试查找由特定GTID标识的事务: 17f6a975-e2b4-11ec-b714-c8cb9e32df8e:7541914
SQL > \P grep 'Gtid\|COMMIT' ;
Pager has been set to 'grep 'Gtid\|COMMIT' ;'.
SQL > show BINLOG EVENTS in 'binlog.000064' ;
| binlog.000064 | 213 | Gtid | 1 | 298 | SET @@SESSION.GTID_NEXT= '17f6a975-e2b4-11ec-b714-c8cb9e32df8e:7541914' |
| binlog.000064 | 53904723 | Xid | 1 | 53904754 | COMMIT /* xid=75 */ |
SQL > \pager
Pager has been disabled.
SQL > select format_bytes(53904754-213);
+----------------------------+
| format_bytes(53904754-213) |
+----------------------------+
| 51.41 MiB |
+----------------------------+
1 row in set (0.0005 sec)