首頁 >資料庫 >mysql教程 >如何快速更新資料庫表中1.2億筆記錄?

如何快速更新資料庫表中1.2億筆記錄?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 17:26:41864瀏覽

How Can I Quickly Update 120 Million Records in a Database Table?

快速更新1.2 億筆記錄的技巧

嘗試更新包含1.2 億筆記錄的表時遇到效能問題是一個常見的挑戰。使用 UPDATE 語句的傳統方法可能非常緩慢,需要數小時甚至數天才能完成。

不要嘗試直接更新,請考慮使用 SELECT 語句填入 第二個 表。這種方法提供了顯著的性能優勢,如下所示:

簡單案例:

  • 對於沒有聚集索引的表以及在低DML 期間活動:

    • 執行:SELECT *, new_col = 1 INTO clone.BaseTable FROM dbo.BaseTable
    • 在新表上重新建立索引、限制等
    • 使用 ALTER SCHEMA 切換新舊表 ... TRANSFER
    • 刪除舊表table

非簡單情況:

  • 非簡單情況:
  • 在不同模式下重新使用建立具有相同名稱的BaseTable (clone.table) BaseTable)包含聚集索引、識別列、計算列和新的INT列
  • 排除
  • 觸發器、外鍵約束、非聚集索引和檢查約束
  • 用少量行測試插入
  • 截斷克隆表並執行完整克隆表並執行完整插入
重新建立所有非聚集約束、索引和觸發器

將dbo.BaseTable移動到備份架構並將.BaseTable 複製到 dbo 架構透過避免直接更新並利用 SELECT 語句的強大功能,您可以大幅減少更新時間,使得高效更新海量表成為可能。

以上是如何快速更新資料庫表中1.2億筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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