博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql一个事务中有DDL语句的binlog情况
阅读量:6078 次
发布时间:2019-06-20

本文共 3983 字,大约阅读时间需要 13 分钟。

 
在autocommit=1的情况下,开启一个事务,如果里面有DDL语句,那么事务开始到DDL语句之间的DML语句都会被提交。再开启新的事务。可以从binlog中看出
 
session语句:
09:26:04  :[testdb] mysql.sock>select * from t2;
+------+--------+-------+
| id   | course | score |
+------+--------+-------+
|    1 | math   |     0 |
|    2 | ch     |     0 |
|    3 | eng    |     0 |
+------+--------+-------+
3 rows in set (0.00 sec)
 
09:26:10  :[testdb] mysql.sock>
begin;
Query OK, 0 rows affected (0.00 sec)
 
09:26:18  :[testdb] mysql.sock>
delete from t2 where id=2;
Query OK, 1 row affected (0.05 sec)
 
09:26:30  :[testdb] mysql.sock>
alter table t2 drop column score;
Query OK, 0 rows affected (0.11 sec)
Records: 0  Duplicates: 0  Warnings: 0
 
09:26:43  :[testdb] mysql.sock>
delete from t2 where id=3;
Query OK, 1 row affected (0.00 sec)
 
09:26:53  :[testdb] mysql.sock>
delete from t2 where id=1;
Query OK, 1 row affected (0.03 sec)
 
09:27:30  :[testdb] mysql.sock>rollback;
Query OK, 0 rows affected (0.00 sec)
 
09:27:37  :[testdb] mysql.sock>select * from t2;
Empty set (0.00 sec)
 
 
 mysqlbinlog解析:
 
[  mysql]# mysqlbinlog --no-defaults -v --base64-output=DECODE-ROWS good.000001 
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#160510  9:26:03 server id 4  end_log_pos 120 CRC32 0xfb18f530     Start: binlog v 4, server v 5.6.16-log created 160510  9:26:03 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
# at 120
#160510  9:26:30 server id 4  end_log_pos 194 CRC32 0x4613aabe     Query    thread_id=1490    exec_time=0    error_code=0
SET TIMESTAMP=1462843590/*!*/;
SET @@session.pseudo_thread_id=1490/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 194
#160510  9:26:30 server id 4  end_log_pos 245 CRC32 0x12aee719     Table_map: `testdb`.`t2` mapped to number 100
# at 245
#160510  9:26:30 server id 4  end_log_pos 292 CRC32 0x42bb4b1e     Delete_rows: table id 100 flags: STMT_END_F
### DELETE FROM `testdb`.`t2`
### WHERE
###   @1=2
###   @2='ch'
###   @3=0
# at 292
#160510  9:26:43 server id 4  end_log_pos 323 CRC32 0x7f4b17a2     Xid = 4683
COMMIT/*!*/;
# at 323
#160510  9:26:43 server id 4  end_log_pos 433 CRC32 0x3da26437     Query    thread_id=1490    exec_time=0    error_code=0
use `testdb`/*!*/;
SET TIMESTAMP=1462843603/*!*/;
alter table t2 drop column score
/*!*/;
# at 433
#160510  9:26:53 server id 4  end_log_pos 507 CRC32 0xaf228c7f     Query    thread_id=1490    exec_time=0    error_code=0
SET TIMESTAMP=1462843613/*!*/;
BEGIN
/*!*/;
# at 507
#160510  9:26:53 server id 4  end_log_pos 557 CRC32 0x98b09e6b     Table_map: `testdb`.`t2` mapped to number 108
# at 557
#160510  9:26:53 server id 4  end_log_pos 601 CRC32 0x56abcace     Delete_rows: table id 108 flags: STMT_END_F
### DELETE FROM `testdb`.`t2`
### WHERE
###   @1=3
###   @2='eng'
# at 601
#160510  9:26:53 server id 4  end_log_pos 632 CRC32 0x41e6e24f     Xid = 4754
COMMIT/*!*/;
# at 632
#160510  9:27:30 server id 4  end_log_pos 706 CRC32 0x4916f7a0     Query    thread_id=1490    exec_time=0    error_code=0
SET TIMESTAMP=1462843650/*!*/;
BEGIN
/*!*/;
# at 706
#160510  9:27:30 server id 4  end_log_pos 756 CRC32 0x15098e83     Table_map: `testdb`.`t2` mapped to number 108
# at 756
#160510  9:27:30 server id 4  end_log_pos 801 CRC32 0x2bc1b8aa     Delete_rows: table id 108 flags: STMT_END_F
### DELETE FROM `testdb`.`t2`
### WHERE
###   @1=1
###   @2='math'
# at 801
#160510  9:27:30 server id 4  end_log_pos 832 CRC32 0x9ce9b647     Xid = 4870
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
 
 
 
 

转载地址:http://ushgx.baihongyu.com/

你可能感兴趣的文章
WindowsServer 2008 R2 Active Directory PowerShell
查看>>
大数据虚拟化零起点-3基础运维第二步-安装vSphere 5.1
查看>>
App-V5.0服务器部署
查看>>
Gartner:2012年大数据HypeCycle
查看>>
Lync 小技巧-4-我是否应该用动态内存
查看>>
写给同事的一封信
查看>>
详解Kafka生产者Producer配置
查看>>
SQL Server 2012笔记分享-9:理解列存储索引
查看>>
基于2.8版本redis配置文件中文解释
查看>>
《从零开始学Swift》学习笔记(Day 49)——扩展声明
查看>>
SFB 项目经验-58-Exchange 2016-POP3-配置-几年之伤(生产环境)
查看>>
网络资源管理系统LANsurveyor实战体验
查看>>
Windows 10 Build 9879 新变化(内含ISO下载)
查看>>
SFB 项目经验-39-分配公网证书 For 反向代理服务器 TMG 2010(图解)
查看>>
幼儿园小朋友可以教创业者的事
查看>>
SharePoint Server 2013 之二:准备数据库
查看>>
db link的查看创建与删除
查看>>
perl学习5--子程序中自动识别参数
查看>>
C#--GDI+的PathGradientBrush类的使用
查看>>
sql server 查询任务管理器数据
查看>>