今天无意和同事讨论MySQL load data infile的问题,这个问题是由开发那边引起的:他们竟然对一个4千万行的数据直接load data infile插入测试库,结果可想而知,出问题了。跑了一整晚都没跑完,基本上是卡死了【注释1】。原因可能是原表索引太多,导致速度巨慢。于是做了一个实验验证load data infile是否为一个单独的事务。
步骤是这样的:1,开启binlog,设置binlog_format=row,执行reset master;2,load data infile xxxxx;3,查看binlog。发现如下信息:
mysql> show binlog events;
+------------------+------+-------------+-----------+-------------+---------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+------------------+------+-------------+-----------+-------------+---------------------------------------+
| mysql-bin.000001 | 4 | Format_desc | 2 | 106 | Server ver: 5.1.62-log, Binlog ver: 4 |
| mysql-bin.000001 | 106 | Que