天天看點

Mysql資料庫實踐操作之————批量插入資料(100萬級别的資料)

第一種方法:使用insert into 插入

從Redis每次擷取100條資料,根據條件去插入到Mysql資料庫中:

條件:

如果目前隊列中的值大于1000條,則會自動的條用該方法,該方法每次擷取從隊列的頭部每次擷取100掉資料插入到Mysql資料庫中,同時以目前隊列的長度為插入條件。

1000為原始資料,從隊列頭擷取100條,插入到Mysql資料,同時删除已經插入的資料,再通過隊列的長度判斷是否繼續插入,直到循環不滿足條件為止。

[1]擷取頭100條資料:$redis->lRange($liveKey,0,99)

[2]删除頭100條資料:$redis->lTrim($liveKey, 100, -1);

[1]擷取目前隊列長度:$redis->lLen($liveKey);

第二種方法:使用優化SQL語句:将SQL語句進行拼接,使用 insert into table () values  (),(),(),()然後再一次性插入,如果字元串太長,則需要配置下MYSQL,在mysql 指令行中運作 :set global max_allowed_packet =  2*1024*1024*10;

拼接後的字元串:

實際案例:

輸出結果為: