首頁 >資料庫 >mysql教程 >如何使用 LOAD DATA INFILE 模擬 MySQL 的 ON DUPLICATE KEY UPDATE?

如何使用 LOAD DATA INFILE 模擬 MySQL 的 ON DUPLICATE KEY UPDATE?

Susan Sarandon
Susan Sarandon原創
2024-12-06 08:39:11271瀏覽

How Can I Simulate MySQL's ON DUPLICATE KEY UPDATE with LOAD DATA INFILE?

使用LOAD DATA INFILE 模擬MySQL 的ON DUPLICATE KEY UPDATE

LOAD DATA INFILE 仍然是將大量資料集快速導入。當尋求實現類似於 INSERT IGNORE 或 REPLACE 的行為時,其有效性可能會不足,因為缺少 ON DUPLICATE KEY UPDATE 支援。儘管如此,ON DUPLICATE KEY UPDATE 比 REPLACE 具有優勢,可以避免遇到重複項時與刪除和插入相關的效能損失,並保留自動增量 ID。

要在LOAD DATA INFILE 操作期間模擬ON DUPLICATE KEY UPDATE 功能,請執行以下操作這些步驟:

  1. 建立臨時表: 建立一個名為「temporary_table」的臨時表,與目標表「target_table」共用相同的結構。
  2. 可選:停用索引: 要最佳化效能,請消除索引使用諸如「DROP INDEX」之類的命令針對索引「PRIMARY」的臨時表以及'some_other_index'。
  3. 將資料載入到臨時表中:執行 LOAD DATA INFILE 指令將 CSV 檔案載入到臨時表中。
  4. 複製資料ON DUPLICATE KEY UPDATE: 使用包含 ON DUPLICATE KEY 的 INSERT 語句UPDATE 子句將資料從暫存資料表複製到目標資料表,更新重複的鍵值。
  5. 刪除臨時表:資料傳輸完成後,刪除臨時表。

使用命令「SHOW INDEX FROM」和「SHOW COLUMNS FROM」可以實現此過程的自動化任何指定的表。

以上是如何使用 LOAD DATA INFILE 模擬 MySQL 的 ON DUPLICATE KEY UPDATE?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn