一些情况需要查看当前最新的事务 ID,方便做一些业务逻辑上的判断(例如利用事务 ID 变化以及前后时差,统计每次事务的响应时长等用途)。
通常地,我们有两种方法可以查看当前的事务 ID:
1、执行 SHOW ENGINE INNODB STATUS,查看事务相关信息
Per second averages calculated from the last 15 seconds
TRANSACTIONS
Trx id counter 3359877657 -- 当前最大事务 ID
Purge done for trx's n:o
History list length 324
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0, not started -- 该会话中执行 SHOW ENGINE INNODB STATUS,不会产生事务,所以事务 ID 为 0
MySQL thread id 4692367, OS thread handle 0x51103940, query id 677284426 xx.173ops.com 10.x.x.x yejr init
SHOW /*!50000 ENGINE*/ INNODB STATUS
---TRANSACTION 3359877640, not started --非活跃事务,还未开始
mysql tables in use 1, locked 0
MySQL thread id 4678384, OS thread handle 0x41a57940, query id 677284427 xx.173ops.com 10.x.x.x yejr System lock
select polinfo