批量插入SQL

2021-06-26 15:49:10 字數 1709 閱讀 3829

sql語句是有長度限制,在進行資料合併在同一sql中務必不能超過sql長度限制,通過max_allowed_packet配置可以修改,預設是1m,測試時修改為8m。

事務需要控制大小,事務太大可能會影響執行的效率。mysql有 innodb_log_buffer_size 配置項,超過這個值會把innodb的資料刷到磁碟中,這時,效率會有所下降。所以比較好的做法是,在資料達到這個這個值前進行事務提交。

insert插入多條資料有二種方法一種是寫多條insert 語句用";"號分割每條sql,一種是insert本身的多個value

1,寫多條insert用";"分割

這個很簡單,;號是mysql執行sql的結束符,寫多個insert用;號割就是讓mysql執行多次而已.比如:

insert into table (field1,field2,field3) value ('a',"b","c");

insert into table (field1,field2,field3) value ('a',"b","c");

insert into table (field1,field2,field3) value ('a',"b","c");

insert into table (field1,field2,field3) value ('a',"b","c");

insert into table (field1,field2,field3) value ('a',"b","c");

2,在insert中寫多個value

insert into table (field1,field2,field3) values ('a',"b","c"), ('a',"b","c"),('a',"b","c");

1. 對於myisam型別的表,可以通過以下方式快速的匯入大量的資料。

alter  table  tblname  disable  keys;

loading  the  data

alter  table  tblname  enable  keys;

這兩個命令用來開啟或者關閉myisam表非唯一索引的更新。在匯入大量的資料到一 個非空的myisam表時,通過設定這兩個命令,可以提高匯入的效率。對於匯入大量 資料到乙個空的myisam表,預設就是先導入資料然後才建立索引的,所以不用進行 設定。

2. 而對於innodb型別的表,這種方式並不能提高匯入資料的效率。對於innodb型別 的表,我們有以下幾種方式可以提高匯入的效率:

a. 因為innodb型別的表是按照主鍵的順序儲存的,所以將匯入的資料按照主鍵的順 序排列,可以有效的提高匯入資料的效率。如果innodb表沒有主鍵,那麼系統會預設建立乙個內部列作為主鍵,所以如果可以給表建立乙個主鍵,將可以利用這個優勢提高 匯入資料的效率。

b. 在匯入資料前執行set  unique_checks=0,關閉唯一性校驗,在匯入結束後執行set  unique_checks=1,恢復唯一性校驗,可以提高匯入的效率。

c. 如果應用使用自動提交的方式,建議在匯入前執行set  autocommit=0,關閉自動 提交,匯入結束後再執行

昨天寫的shell指令碼批量插入資料( 

mysql批量插入資料(更改版)

和 mysql批量插入資料

都是本人寫的)在執行的過程中太慢,3000多條資料插入了2個多小時,這次用儲存過程批量插入資料,一萬條資料僅僅用了7分鐘,主要是因為,shell指令碼插入式每次都得開啟資料庫,而用儲存過程只需要開啟一次資料庫就行啦! 

url:

sql批量插入

批量插入 第一種 insert into mytable id,name values 1,123 insert into mytable id,name values 2,456 insert into mytable id,name values 3,789 第二種方法,使用union all來...

SQL批量插入資料

select frompersonsp 批量插入 insert intopersonsvalues bx9 z 上海 松江 2 bx1 z 上海 松江 2 bx2 z 上海 松江 2 bx3 z 上海 松江 2 bx4 z 上海 松江 2 bx5 z 上海 松江 2 bx6 z 上海 松江 2 bx...

批量插入sql技巧

方式一 insert into insert table datetime uid content type values 0 userid 0 content 0 0 insert into insert table datetime uid content type values 1 useri...