首頁 >資料庫 >mysql教程 >如何有效率更新資料庫表1.2億筆記錄?

如何有效率更新資料庫表1.2億筆記錄?

DDD
DDD原創
2024-12-31 17:57:10729瀏覽

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

優化海量記錄更新操作

問題:
使用即使運行了多次,簡單的 UPDATE語句也失敗了

解決方案:

不要更新現有表,而是使用 SELECT 語句用所需的值填充新表。這種方法顯著提高了效能並避免了與直接更新相關的瓶頸。

非簡單情況的步驟:

  1. 建立一個具有所需的新表結構:

    • 使用相同的聚集索引、識別列、計算列和要更新的新列在不同架構下重新建立原始表。
    • 排除觸發器、外鍵約束和其他非必要的
  2. 測試插入操作:

    • 將一小部分行插入新表中以確保正確性。
  3. 準備批次插入:

    • 將資料庫設定為批次日誌或簡單復原模式。
    • 截斷新的
  4. 執行批次插入:

    • 使用帶有INSTABLOC 的單一INSTAERT語句提示。
  5. 驗證資料完整性:

    • 檢查新表以確認更新成功。
  6. 重新建立限制和觸發器:

    • 在新表中重新建立所有非聚集約束、索引和索引觸發器,同時在單獨的批次中維護架構。
  7. 切換表:

    • 將原始表移至備份架構,將新表移至所需架構。
    • 執行任何必要的調整操作以協調發生的任何更改更新過程中。

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

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