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

PHPz
發布: 2024-08-19 16:40:13
原創
219 人瀏覽過

?介紹

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

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

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 檔案應該具有正確的格式才能使此語句發揮作用? .

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

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


上述語句在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.

?參考

官方文件

以上是如何批次上傳CSV檔案資料到MySql表中?使用 LOAD DATA 的一種非常快速的方法。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!