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

mysql快速插入大量數(shù)據(jù)的正確方法

 更新時間:2024年01月15日 10:44:25   作者:菜鳥_cc  
在處理大量數(shù)據(jù)時如果一條一條地插入會極大地影響效率,因此批量插入是一個更好的選擇,下面這篇文章主要給大家介紹了關(guān)于mysql快速插入大量數(shù)據(jù)的正確方法,需要的朋友可以參考下

前言

最近做性能測試,需要模擬生產(chǎn)環(huán)境的數(shù)據(jù)量,在造百萬、千萬級數(shù)據(jù)的時候發(fā)現(xiàn)直接使用插入sql效率極低,百度了一翻,找到幾種方式,但用下來還是有很快速的方式,推薦第四種

插入mysql數(shù)據(jù)效率對比

1.單行插入

insert into tableName (colunm1,colunm2,...) value(value1,value2,...);

沒錯,很普通的一條sql,插入速度也很普通,不推薦

2.多行插入

insert into tableName(colunm1,colunm2,..) values(value1,value2...),(value1,value2...);

有點點進度,但是不多,多行插入可以減少插入數(shù)據(jù)時的IO和網(wǎng)絡(luò)開銷,從而加快插入數(shù)據(jù)的速度。此方法適用于插入少量數(shù)據(jù)的情況,當插入數(shù)據(jù)量變大時,數(shù)據(jù)庫連接可能會被打滿

3.批量插入

INSERT INTO table_name (column1, column2, column3)
VALUES
(value1, value2, value3),
(value4, value5, value6),
......
ON DUPLICATE KEY UPDATE column1=VALUES(column1), column2=VALUES(column2), column3=VALUES(column3);

這個操作將所有插入放在一個事務(wù)中,并將其視為一個操作。此方法使用一次SQL查詢來插入大量數(shù)據(jù),因此減少了IO和網(wǎng)絡(luò)開銷

4.使用LOAD DATA INFILE語句

LOAD DATA INFILE 'file_name'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

使用LOAD DATA INFILE語句可以將大量的數(shù)據(jù)快速地導入MySQL中。此方法適用于數(shù)據(jù)已存儲在文件中的情況,您只需指定文件名和目標表即可導入數(shù)據(jù)。而且,此方法支持多線程操作,可在不阻塞數(shù)據(jù)庫的同時并行地導入數(shù)據(jù)

說實話,這種方式非常香,親測500W數(shù)據(jù)1分鐘插入完成,推薦file_name: 本地存儲數(shù)據(jù)的文件

這個文件的數(shù)據(jù)需要先準備好,你也可以選擇像我一樣代碼生成

  • 首先,從數(shù)據(jù)庫復制一條數(shù)據(jù)

  • 然后把復制出來的插入sql中value里的內(nèi)容摳出來
  • 摳出來的內(nèi)容注意下是否有外鍵、主鍵,如果有要處理一下扣出來的內(nèi)容,下面的例子是id是主鍵,我給去掉了,然后循環(huán)生成主鍵拼接上去,循環(huán)生成的值要符合數(shù)據(jù)庫的字段定義類型
data = ",860272,'2023-07-26 18:00:03','2023-07-26 18:00:03',1,未完成,時,1,1時,219,85,1,001-001,0,9784,'2023-07-26 18:00:03',9784,'2023-07-26 18:00:03'"
with open('demo.txt', 'w+', encoding='utf-8') as f:
    for i in range(0, 1000000):
        f.write(str(i + 1) + data + '\n')
  • 執(zhí)行后生成demo.txt文件,每一行不同的值逗號分隔

  • 最后,連接數(shù)據(jù)庫,可以使用命令連接,也可以借助工具連接,執(zhí)行命令
LOAD DATA LOCAL INFILE 'E:\\demo.txt' INTO TABLE 表名
FIELDS TERMINATED BY ',' ('列名1','列名2','列名3','列名4')

注意:你的txt的值要跟命令中的列名對應(yīng)上,如果你是全字段的值插入,那么('列名1','列名2','列名3','列名4')可以省略不寫

好了,可以享受插入數(shù)據(jù)的快樂了…

總結(jié)

到此這篇關(guān)于mysql快速插入大量數(shù)據(jù)的正確方法的文章就介紹到這了,更多相關(guān)mysql快速插入大量數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql實現(xiàn)導出表結(jié)構(gòu)和數(shù)據(jù)過程

    Mysql實現(xiàn)導出表結(jié)構(gòu)和數(shù)據(jù)過程

    文章主要內(nèi)容是關(guān)于如何導出和導入MySQL數(shù)據(jù)庫中的表結(jié)構(gòu)和數(shù)據(jù),包括導出指定表的結(jié)構(gòu)和數(shù)據(jù),以及如何在本地和遠程服務(wù)器之間傳輸數(shù)據(jù),文章還提到在PHP中使用`mysql_connect`函數(shù)時的一些注意事項
    2025-12-12
  • centos上安裝mysql并設(shè)置遠程訪問的操作方法

    centos上安裝mysql并設(shè)置遠程訪問的操作方法

    這篇文章主要介紹了centos上安裝mysql并設(shè)置遠程訪問的操作方法,需要的朋友可以參考下
    2017-11-11
  • mysql中向表中某字段追加字符串的方法

    mysql中向表中某字段追加字符串的方法

    mysql中向表中某字段追加字符串的方法...
    2007-03-03
  • 淺談MySQL?中?null?值的那些坑

    淺談MySQL?中?null?值的那些坑

    本文解析MySQL中null值的定義與常見問題,如比較運算符失效、WHERE條件誤用、IN子查詢異常,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-09-09
  • mysql對binlog的處理說明

    mysql對binlog的處理說明

    Mysql和其它開源數(shù)據(jù)庫相比,具有更好的擴展性。其主要原因是它提供了存儲引擎的開放接口。喜歡自己折騰數(shù)據(jù)庫的程序員可以從這個接口起步,打造有個性的數(shù)據(jù)庫。
    2011-07-07
  • mysql不重啟的情況下修改參數(shù)變量

    mysql不重啟的情況下修改參數(shù)變量

    這篇文章主要介紹了mysql不重啟的情況下修改參數(shù)變量,需要的朋友可以參考下
    2014-06-06
  • MySQL數(shù)據(jù)庫之約束簡析

    MySQL數(shù)據(jù)庫之約束簡析

    這篇文章主要介紹了MySQL數(shù)據(jù)庫之約束簡析,約束是作用于表中字段上的規(guī)則,用于限制存儲在表中的數(shù)據(jù),保證數(shù)據(jù)庫中數(shù)據(jù)的正確、有效性和完整性,需要的朋友可以參考下
    2023-09-09
  • MySQL創(chuàng)建并調(diào)用自定義函數(shù)方式

    MySQL創(chuàng)建并調(diào)用自定義函數(shù)方式

    這篇文章主要介紹了MySQL創(chuàng)建并調(diào)用自定義函數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • java連不上mysql8.0問題的解決方法

    java連不上mysql8.0問題的解決方法

    這篇文章主要為大家詳細介紹了java連不上MySQL8.0問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 徹底解決MySQL使用中文亂碼的方法

    徹底解決MySQL使用中文亂碼的方法

    本文詳細講解了徹底解決MySQL使用中文亂碼的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01

最新評論

乃东县| 祁东县| 泗水县| 溧水县| 济宁市| 夏津县| 遵化市| 固始县| 沁源县| 万年县| 崇明县| 苍梧县| 钟祥市| 阿克苏市| 新民市| 南涧| 河源市| 嘉义县| 定安县| 山丹县| 涟水县| 山东省| 清新县| 郎溪县| 永寿县| 荣昌县| 鄂州市| 项城市| 连云港市| 海盐县| 临江市| 容城县| 甘南县| 苏尼特右旗| 嵩明县| 伊吾县| 略阳县| 穆棱市| 云浮市| 康平县| 呈贡县|