交易 Transaction

Database 最佳化: 交易 Transaction

控制InnoDB Transaction

关闭自动提交:

SET autocommit=0;

开启自动提交:

SET autocommit=1;

在 MySQL InnoDB 预设所有的资料异动都是 Transaction(交易),当与资料库做连线的时候,InnoDB 会採用自动提交(autocommit)的方式,所以除非使用 BEGIN;COMMIT; 将异动语法包复起来设定为同一个 Transaction,否则任何一个资料异动的语法(INSERT、DELETE、UPDATE)会认为是一个独立的 Transaction

所以资料表每次做资料异动的时候会一直提交 (COMMIT) 去更新日誌,若有 1000笔 独立的SQL要执行就会被 COMMIT 1000 次,所以在下异动语法之前,可以使用指令 SET autocommit=0; 关闭自动提交,等异动完成后,再使用指令 SET autocommit=1; 开启自动提交。

SET autocommit=0;
异动(INSERTDELETEUPDATE)大量资料SQL语法
SET autocommit=1;

参考资料