INNODB批處理的運用事務與否效率

2021-09-05 04:38:00 字數 1198 閱讀 8380

mysql> show create procedure pro_addusers\g

*************************** 1. row ***************************

procedure: pro_addusers

sql_mode:

create procedure: create definer=`root`@`localhost` procedure `pro_addusers`(userconut int)

begin

set @i = 0;

repeat set @i = @i + 1;

insert into users values (@var:=replace(uuid(),'-',''),left(@var,10),@var,'abcdefghijglmn');

until @i = userconut end repeat;

end1 row in set (0.00 sec)

mysql> show create procedure pro_addusers\g

*************************** 1. row ***************************

procedure: pro_addusers

sql_mode:

create procedure: create definer=`root`@`localhost` procedure `pro_addusers`(userconut int)

begin

set autocommit=0;

set @i = 0;

repeat set @i = @i + 1;

insert into users values (@var:=replace(uuid(),'-',''),left(@var,10),@var,'abcdefghijglmn');

if @i%1000=0 then commit;

end if;

until @i = userconut end repeat;

end1 row in set (0.00 sec)

上面兩個儲存過程,向同乙個innodb表插入同樣的資料量,時間差兩個數量級。

插入10萬條記錄,前者10分鐘,後者1秒鐘。

所以對innodb表批量處理資料的時候,最好不要用自動提交。

批處理 FOR的集與萬用字元上

第二節for 的集合與變數 本節將for的 集合 和 變數 放在一起的原因是,兩者之間存在著相互關係。集合向變數提供元素替換變數,因此是 者,它決定了變數的取值範圍。用術語說,集合賦值給形式變數。變數為集合內的元素提供賦值位置,它只能從集合限定的範圍取值,因此是需求者。集合賦值給變數,變數又向do命...

批處理與DOS命令的區別

批處理可以在dos系統或windows系統上執行,所以批處理的命令比dos的命令要多,基本都是dos命令組成,但多了些流程控制命令如 null,等。另外批處理是可以引用外部程式的,比如乙個regedit就可以開啟登錄檔 在windows系統上,批處理包含非常強大的功能,遠遠多於dos命令 而在dos...

批處理 FOR的集與萬用字元上

第二節for的集合與變數 本節將for的 集合 和 變數 放在一起的原因是,兩者之間存在著相互關係。集合向變數提供元素替換變數,因此是 者,它決定了變數的取值範圍。用術語說,集合賦值給形式變數。變數為集合內的元素提供賦值位置,它只能從集合限定的範圍取值,因此是需求者。集合賦值給變數,變數又向do命令...