MYSQL 迴圈提交的優化測試

2021-09-25 02:04:22 字數 1941 閱讀 7812

今天看了別人的一篇檔案,說的是迴圈提交,效能提高很多,我就用文章的儲存過程測試了一下,果然用時很少

create table t1 (a int ,b char(100));

建立load1

delimiter //

create procedure load1 (count int unsigned)

begin

declare s int unsigned default 1;

declare c char(80) default repeat('a',80);

while s <= count do

insert into t1 select null,c;

commit;

set s = s+1;

end while;

end //

delimiter ;

建立load2

delimiter //

create procedure load2 (count int unsigned)

begin

declare s int unsigned default 1;

declare c char(80) default repeat('a',80);

while s <= count do

insert into t1 select null,c;

set s = s+1;

end while;

end //

delimiter ;

建立load3

delimiter //

create procedure load3(count int unsigned)

begin

declare s int unsigned default 1;

declare c char(80) default repeat('a',80);

start transaction;

while s <= count do

insert into t1 select null,c;

set s = s+1;

end while;

commit;

end //

delimiter ;

mysql> create database db1;

query ok, 1 row affected (0.00 sec)

mysql> use db1

database changed

mysql> create table t1 (a int ,b char(100));

query ok, 0 rows affected (0.03 sec)

mysql> call load1(20000);

query ok, 0 rows affected (1 min 22.25 sec)

mysql> truncate table t1;

query ok, 0 rows affected (0.02 sec)

mysql> truncate table t1;

query ok, 0 rows affected (0.02 sec)

mysql> call load2(20000);

query ok, 1 row affected (1 min 21.53 sec)

mysql>  truncate table t1;

query ok, 0 rows affected (0.02 sec)

mysql> call load3(20000);

query ok, 0 rows affected (2.39 sec)

顯然,load3 方法要快的多,這是因為每一次提交都要寫一次重做日誌,儲存過程 load1 和 load2 

實際寫了 20000 次重做日誌檔案,而對於儲存過程 load3 來說,實際只寫了一次。

迴圈的優化

迴圈的優化 1,數字比較盡量和0比較 注釋 計算機喜歡0和1 foo for int i 0 i0 i 2,盡量把異常捕獲寫在外面 foo for int i 180000 i 0 i catch 優化 try catch 3,盡量不要在迴圈內有多餘的方法呼叫 注釋 除了方法呼叫本身耗費資源外,其方...

表單提交的簡單優化

今天,分配的任務做完,問我們組長有沒有工作需要幫助,她來了句把自己 優化下,影響效能的地方,以及 不規範的地方 自己優化下,然後給她看.等著被吊 優化前 好吧確實臃腫 handlesubmit contactstore this.props 上傳 first,second,data if this....

mysql的優化 MySQL優化

一 sql語句優化 1 使用limit對查詢結果的記錄進行限定 2 避免select 將需要查詢的字段列出來 3 使用連線 join 來代替子查詢 4 拆分大的delete或insert語句 二 選擇合適的資料型別 1 使用可存下資料的最小的資料型別,整型 date,time char,varcha...