上面的要點片段顯示了通用載入資料語句。上面的程式碼中提到了所有可用的選項。

現在讓我們專注於一個簡單的範例,即簡單地讀取 .csv 檔案並將其行插入到相容的表中。

一個簡單的例子:

LOAD DATA INFILE ‘data.csv’ INTO TABLE db.my_table

包含所有基本選項的鳥瞰範例:

不用說,您的 CSV 檔案應該正確格式化才能使此語句發揮作用? .

瞧,使用上述語句,您的 .csv 行數超過 10 萬行將在幾秒鐘內導入到您的表中。

現在,需要注意一些重要事項:

上述語句在MySql層級運行,因此來源檔案從客戶端複製到伺服器以便匯入它們。
這會帶來一些安全問題,我們需要確保使用此程式碼時客戶端-伺服器連線的安全性。

在MySql 8.0中,使用LOCAL的能力預設為False。由於您的伺服器和用戶端應配置為允許 LOCAL,因此有些人可能會收到權限錯誤。

如果出現權限錯誤,我們需要透過啟用 local_infile:
來覆寫它

SET GLOBAL local_infile = true;

注意:覆蓋此標誌並不是安全解決方案,而是承認接受風險,您可以參考此文件以獲取更多資訊。

?‍?結論

MySql LOAD DATA 語句用於在非常短的時間內讀取檔案。
您可以將此程式碼與任何後端 API 一起使用來提供原始檔案。
來源文件可以是任何文字文件,我們在本例中使用.csv。

LOAD DATA LOCAL透過MySql將來源檔案複製到您的伺服器,因此應在伺服器端實施安全措施。

mysqlimport 實用程式在內部使用 LOAD DATA 語句。

您可以透過在語句中加入 IGNORE 1 LINES 來忽略 CSV 中的標頭。

\\\"How

?參考

官方文件

","image":"http://www.luping.net/uploads/20241001/172776132566fb8baddd92a.gif","datePublished":"2024-11-08T04:52:05+08:00","dateModified":"2024-11-08T04:52:05+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何批次上傳CSV檔案資料到MySql表中?使用 LOAD DATA 的一種非常快速的方法。

如何批次上傳CSV檔案資料到MySql表中?使用 LOAD DATA 的一種非常快速的方法。

發佈於2024-11-08
瀏覽:470

?介紹

您是否仍在使用“for”或“while”循環來迭代行並將它們插入資料庫?您還在編寫單獨的程式碼來讀取 .csv 檔案並將其上傳到 MySQL 資料庫嗎?

用MySQL提供的「LOAD DATA」語句對線性邏輯說「NO」。準備好更改程式碼以最大限度地減少行數並大幅提高效能。

MySql 提供了 LOAD DATA 語句,這是一種非常高速的方法,可以用很少的程式碼從文字檔案中讀取資料並將其插入到表中。

?什麼是 LOAD DATA INFILE 語句?

根據MySQL 的官方文檔,LOAD DATA 語句用於以非常快的方式從文件中讀取數據,您可以通過一次查詢將此數據插入表中,而不是多次訪問數據庫與“INSERT INTO”查詢。

MySQL也提供了一個語句->“SELECT…INTO OUTFILE”,它的作用與“LOAD DATA”的作用完全相反,即從表中讀取資料到檔案

MySql提供的mysqlimport實用程式內部呼叫伺服器上的LOAD DATA語句來匯入資料。

?如何使用它?

上面的要點片段顯示了通用載入資料語句。上面的程式碼中提到了所有可用的選項。

現在讓我們專注於一個簡單的範例,即簡單地讀取 .csv 檔案並將其行插入到相容的表中。

一個簡單的例子:

LOAD DATA INFILE ‘data.csv’ INTO TABLE db.my_table

包含所有基本選項的鳥瞰範例:

不用說,您的 CSV 檔案應該正確格式化才能使此語句發揮作用? .

瞧,使用上述語句,您的 .csv 行數超過 10 萬行將在幾秒鐘內導入到您的表中。

現在,需要注意一些重要事項:

上述語句在MySql層級運行,因此來源檔案從客戶端複製到伺服器以便匯入它們。
這會帶來一些安全問題,我們需要確保使用此程式碼時客戶端-伺服器連線的安全性。

在MySql 8.0中,使用LOCAL的能力預設為False。由於您的伺服器和用戶端應配置為允許 LOCAL,因此有些人可能會收到權限錯誤。

如果出現權限錯誤,我們需要透過啟用 local_infile:
來覆寫它

SET GLOBAL local_infile = true;

注意:覆蓋此標誌並不是安全解決方案,而是承認接受風險,您可以參考此文件以獲取更多資訊。

?‍?結論

MySql LOAD DATA 語句用於在非常短的時間內讀取檔案。
您可以將此程式碼與任何後端 API 一起使用來提供原始檔案。
來源文件可以是任何文字文件,我們在本例中使用.csv。

LOAD DATA LOCAL透過MySql將來源檔案複製到您的伺服器,因此應在伺服器端實施安全措施。

mysqlimport 實用程式在內部使用 LOAD DATA 語句。

您可以透過在語句中加入 IGNORE 1 LINES 來忽略 CSV 中的標頭。

How to Bulk Upload CSV file data into MySql Table? A very fast way using LOAD DATA.

?參考

官方文件

版本聲明 本文轉載於:https://dev.to/elpidaguy/how-to-bulk-upload-csv-file-data-into-mysql-table-a-very-fast-way-using-load-data-c44? 1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 反射動態實現Go接口用於RPC方法探索
    反射動態實現Go接口用於RPC方法探索
    在GO 使用反射來實現定義RPC式方法的界面。例如,考慮一個接口,例如:鍵入myService接口{ 登錄(用戶名,密碼字符串)(sessionId int,錯誤錯誤) helloworld(sessionid int)(hi String,錯誤錯誤) } 替代方案而不是依靠反射...
    程式設計 發佈於2025-05-14
  • 可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    [2这里: https://webthemez.com/demo/sticky-multi-header-scroll/index.html posite:sticky; sticky; .Sticky-1 {[ top:1em; z-index:1; 1; { display:gr...
    程式設計 發佈於2025-05-14
  • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
    程式設計 發佈於2025-05-14
  • 如何干淨地刪除匿名JavaScript事件處理程序?
    如何干淨地刪除匿名JavaScript事件處理程序?
    刪除匿名事件偵聽器將匿名事件偵聽器添加到元素中會提供靈活性和簡單性,但是當要刪除它們時,可以構成挑戰,而無需替換元素本身就可以替換一個問題。 element? element.addeventlistener(event,function(){/在這里工作/},false); 要解決此問題,請考...
    程式設計 發佈於2025-05-14
  • JavaScript計算兩個日期之間天數的方法
    JavaScript計算兩個日期之間天數的方法
    How to Calculate the Difference Between Dates in JavascriptAs you attempt to determine the difference between two dates in Javascript, consider this s...
    程式設計 發佈於2025-05-14
  • 如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    postgresql:為每個唯一標識符在postgresql中提取最後一行,您可能需要遇到與數據集合中每個不同標識的信息相關的信息。考慮以下數據:[ 1 2014-02-01 kjkj 在數據集中的每個唯一ID中檢索最後一行的信息,您可以在操作員上使用Postgres的有效效率: id dat...
    程式設計 發佈於2025-05-14
  • Java的Map.Entry和SimpleEntry如何簡化鍵值對管理?
    Java的Map.Entry和SimpleEntry如何簡化鍵值對管理?
    A Comprehensive Collection for Value Pairs: Introducing Java's Map.Entry and SimpleEntryIn Java, when defining a collection where each element com...
    程式設計 發佈於2025-05-14
  • Go web應用何時關閉數據庫連接?
    Go web應用何時關閉數據庫連接?
    在GO Web Applications中管理數據庫連接很少,考慮以下簡化的web應用程序代碼:出現的問題:何時應在DB連接上調用Close()方法? ,該特定方案將自動關閉程序時,該程序將在EXITS EXITS EXITS出現時自動關閉。但是,其他考慮因素可能保證手動處理。 選項1:隱式關閉終...
    程式設計 發佈於2025-05-14
  • 人臉檢測失敗原因及解決方案:Error -215
    人臉檢測失敗原因及解決方案:Error -215
    錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
    程式設計 發佈於2025-05-14
  • 在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    mysql-python安裝錯誤:“ mysql_config找不到”“ 由於缺少MySQL開發庫而出現此錯誤。解決此問題,建議在Ubuntu上使用該分發的存儲庫。使用以下命令安裝Python-MysqldB: sudo apt-get安裝python-mysqldb sudo pip in...
    程式設計 發佈於2025-05-14
  • 表單刷新後如何防止重複提交?
    表單刷新後如何防止重複提交?
    在Web開發中預防重複提交 在表格提交後刷新頁面時,遇到重複提交的問題是常見的。要解決這個問題,請考慮以下方法: 想像一下具有這樣的代碼段,看起來像這樣的代碼段:)){ //數據庫操作... 迴聲“操作完成”; 死(); } ? > ...
    程式設計 發佈於2025-05-14
  • 在C#中如何高效重複字符串字符用於縮進?
    在C#中如何高效重複字符串字符用於縮進?
    在基於項目的深度下固定字符串時,重複一個字符串以進行凹痕,很方便有效地有一種有效的方法來返回字符串重複指定的次數的字符串。使用指定的次數。 constructor 這將返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.W...
    程式設計 發佈於2025-05-14
  • 為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    為什麼PHP的DateTime :: Modify('+1個月')會產生意外的結果?
    使用php dateTime修改月份:發現預期的行為在使用PHP的DateTime類時,添加或減去幾個月可能並不總是會產生預期的結果。正如文檔所警告的那樣,“當心”這些操作的“不像看起來那樣直觀。 考慮文檔中給出的示例:這是內部發生的事情: 現在在3月3日添加另一個月,因為2月在2001年只有2...
    程式設計 發佈於2025-05-14
  • Java中假喚醒真的會發生嗎?
    Java中假喚醒真的會發生嗎?
    在Java中的浪費喚醒:真實性或神話? 在Java同步中偽裝喚醒的概念已經是討論的主題。儘管存在這種行為的潛力,但問題仍然存在:它們實際上是在實踐中發生的嗎? Linux的喚醒機制根據Wikipedia關於偽造喚醒的文章,linux實現了pthread_cond_wait()功能的Linux實現,...
    程式設計 發佈於2025-05-14

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3