以下回答的前提是你使用的存储引擎是 Innodb Remember that even a SELECT statement opens a transaction — Mysql 文档 你可以用一个闲置的 mysql 服务器做一个小实验: step1: SET autocommit = 0; — 关闭自动提交; step2: SELECT * FROM table_name; — 执行查询语句 ; step3: SELECT * FROM information_schema.INNODB_TRX; — 查看正在运行的事务,此时你应该会看到一条记录,这条记录的 TRX_STARTED 就是 step2 的执行时间; step4: COMMIT; — step3 产生的那条记录消失。
Innodb
你可以用一个闲置的 mysql 服务器做一个小实验:
SET autocommit = 0;
— 关闭自动提交;SELECT * FROM table_name;
— 执行查询语句 ;SELECT * FROM information_schema.INNODB_TRX;
— 查看正在运行的事务,此时你应该会看到一条记录,这条记录的TRX_STARTED
就是 step2 的执行时间;COMMIT;
— step3 产生的那条记录消失。