最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql存儲(chǔ)中使用while批量插入數(shù)據(jù)(批量提交和單個(gè)提交的區(qū)別)

 更新時(shí)間:2022年08月17日 11:09:05   作者:劉大大__  
這篇文章主要介紹了mysql存儲(chǔ)中使用while批量插入數(shù)據(jù)(批量提交和單個(gè)提交的性能差異),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

批量提交

while 語句寫法:

? ? while '條件' do
? ? ? ? ? ? 循環(huán)體語句;
? ? end while;

完整寫法

drop procedure if exists test_insert;
delimiter $$
create procedure test_insert(n int)
?? ?begin
?? ?declare v int default 0;
?? ?set AUTOCOMMIT = 0;
?? ?while v < n
?? ??? ?do
?? ??? ??? ??? ?insert into test(second_key, text, field_4,status, create_date)
?? ??? ??? ??? ?values ((v*10),
?? ??? ??? ??? ?concat('t',v),
? ? ? ? ? ? ? ? substring(md5(rand()), 1, 10),
? ? ? ? ? ? ? ? 'good',
? ? ? ? ? ? ? ? adddate('1970-01-01', rand(v) * 10000));
? ? ? ? set v = v + 1;
? ? ?end while;
? ? ? set AUTOCOMMIT = 1;
end$$
delimiter ;

查看、刪除存儲(chǔ)過程:

mysql> show procedure status like 'test_insert';
mysql> show create procedure test_insert\G;
mysql> drop procedure if exists test_insert;

創(chuàng)建表

CREATE TABLE test (
id INT NOT NULL AUTO_INCREMENT,
second_key INT,
text VARCHAR(20),
field_4 VARCHAR(20),
status VARCHAR(10),
create_date date,
PRIMARY KEY (id),
KEY idx_second_key (second_key)
) Engine=InnoDB CHARSET=utf8;

插入100萬條數(shù)據(jù)

mysql> call test_insert(1000000);
Query OK, 0 rows affected (31.86 sec)

單個(gè)提交

完整寫法

drop procedure if exists test_insert;
delimiter $$
create procedure test_insert(n int)
?? ?begin
?? ?declare v int default 0;
?? ?while v < n
?? ??? ?do
?? ??? ??? ??? ?insert into test(second_key, text, field_4,status, create_date)
?? ??? ??? ??? ?values ((v*10),
?? ??? ??? ??? ?concat('t',v),
? ? ? ? ? ? ? ? substring(md5(rand()), 1, 10),
? ? ? ? ? ? ? ? 'good',
? ? ? ? ? ? ? ? adddate('1970-01-01', rand(v) * 10000));
? ? ? ? set v = v + 1;
? ? ?end while;
end$$
delimiter ;

插入1萬條數(shù)據(jù)

mysql> call test_insert(10000);
Query OK, 1 row affected (1 min 8.52 sec)

打開另一個(gè)窗口查看

mysql> select count(*) from test.test;
+----------+
| count(*) |
+----------+
| ? ? 1428 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from test.test;
+----------+
| count(*) |
+----------+
| ? ? 1598 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from test.test;
+----------+
| count(*) |
+----------+
| ? ? 1721 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from test.test;
+----------+
| count(*) |
+----------+
| ? ? 1983 |
+----------+
1 row in set (0.00 sec)

結(jié)論

批量提交100萬條數(shù)據(jù)用了30秒,單個(gè)提交1萬條數(shù)據(jù)用了1分鐘,對(duì)比發(fā)現(xiàn),批量提交的效率遠(yuǎn)大于單個(gè)提交的效率

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 幾個(gè)常見的MySQL的可優(yōu)化點(diǎn)歸納總結(jié)

    幾個(gè)常見的MySQL的可優(yōu)化點(diǎn)歸納總結(jié)

    這篇文章主要介紹了幾個(gè)常見的MySQL的可優(yōu)化點(diǎn)歸納總結(jié),包括在編程時(shí)處理索引、分頁以及數(shù)據(jù)類型時(shí)可用到的地方,需要的朋友可以參考下
    2015-05-05
  • MySQL Community Server壓縮包安裝配置方法

    MySQL Community Server壓縮包安裝配置方法

    這篇文章主要為大家詳細(xì)介紹了MySQL Community Server壓縮包安裝配置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • My Sql 1067錯(cuò)誤與編碼問題的解決方案

    My Sql 1067錯(cuò)誤與編碼問題的解決方案

    My Sql 大部分都是用綠色版(解壓版) 然后注冊(cè)服務(wù)簡單方便,但是配置文件也很讓人糾結(jié),下面小編給大家?guī)砹薓y Sql 1067錯(cuò)誤與編碼問題的解決方案,感興趣的朋友參考下吧
    2016-11-11
  • mysql查詢鎖表的實(shí)現(xiàn)方法

    mysql查詢鎖表的實(shí)現(xiàn)方法

    本文主要介紹了mysql查詢鎖表的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • 解決Navicat Premium 連接 MySQL 8.0 報(bào)錯(cuò)

    解決Navicat Premium 連接 MySQL 8.0 報(bào)錯(cuò)"1251"的問題分析

    這篇文章主要介紹了解決Navicat Premium 連接 MySQL 8.0 報(bào)錯(cuò)"1251"的問題分析,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • MySQL使用show?effective?grants查看權(quán)限官方解讀

    MySQL使用show?effective?grants查看權(quán)限官方解讀

    這篇文章主要為大家介紹了MySQL使用show?effective?grants查看權(quán)限,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Mysql從5.6.14安全升級(jí)至mysql5.6.25的方法

    Mysql從5.6.14安全升級(jí)至mysql5.6.25的方法

    這篇文章主要介紹了Mysql從5.6.14安全升級(jí)至mysql5.6.25的方法,本教程講的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2016-08-08
  • 系統(tǒng)高吞吐量下的數(shù)據(jù)庫重復(fù)寫入問題分析解決

    系統(tǒng)高吞吐量下的數(shù)據(jù)庫重復(fù)寫入問題分析解決

    這篇文章主要介紹了系統(tǒng)高吞吐量下的數(shù)據(jù)庫重復(fù)寫入問題分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 教您修復(fù)mysql數(shù)據(jù)庫的方法

    教您修復(fù)mysql數(shù)據(jù)庫的方法

    你可能在使用MySQL過程中,各種意外導(dǎo)致數(shù)據(jù)庫表的損壞,而且這些數(shù)據(jù)往往是最新的數(shù)據(jù),通常不可能在備份數(shù)據(jù)中找到。本章將繼上篇文章中檢查出表的問題后,告訴你如何修復(fù)表
    2014-05-05
  • 淺談MySQL數(shù)據(jù)庫表鎖了怎么解鎖

    淺談MySQL數(shù)據(jù)庫表鎖了怎么解鎖

    在使用 MySQL 數(shù)據(jù)庫時(shí),有時(shí)候會(huì)發(fā)生某個(gè)表被鎖住的情況,這可能會(huì)導(dǎo)致其他用戶無法對(duì)該表進(jìn)行讀寫操作,影響系統(tǒng)的正常運(yùn)行,本文主要介紹了淺談MySQL數(shù)據(jù)庫表鎖了怎么解鎖,感興趣的可以了解一下
    2023-10-10

最新評(píng)論

门源| 邳州市| 慈利县| 娄烦县| 康保县| 绵竹市| 额敏县| 广宁县| 西丰县| 云南省| 博野县| 方正县| 河北区| 青铜峡市| 台中市| 贺兰县| 永兴县| 长海县| 阿坝县| 东光县| 手游| 荔浦县| 巴楚县| 苍溪县| 竹北市| 喜德县| 镇赉县| 临邑县| 红原县| 甘谷县| 柳河县| 微山县| 绥宁县| 青川县| 自贡市| 城口县| 含山县| 尼勒克县| 塔河县| 大足县| 黔西县|