全部產品
Search
文件中心

AnalyticDB:資料變更最佳實務

更新時間:Jul 06, 2024

本文介紹了更新、刪除和匯入的方法。

向表中寫入資料時,可以通過批量打包方式INSERT和REPLACE INTO提高資料寫入效能。建議如下:

  • 通過每條INSERT或者REPLACE語句寫入的資料行數大於1000行,但寫入的總資料量不宜太大,不超過16MB。

  • 通過批量打包方式寫入資料時,單個批次的寫入延遲相對會高一些。

  • 寫入報錯時,需要做重試確保資料被寫入,重試導致的資料重複可以通過表的主鍵來消除。

更新資料

AnalyticDB MySQL版提供多種資料更新方式,建議如下:

  • 資料更新頻率高、基於主鍵的行級覆蓋更新且應用可以補齊所有列,可通過REPLACE INTO批次更新資料。

  • 資料更新頻率低、基於主鍵更新,可通過REPLACE INTO或者UPDATE單條更新資料。

  • 資料更新頻率低、基於任意條件的更新,可通過UPDATE更新資料。

刪除資料、分區、表

AnalyticDB MySQL版有多種刪除資料的方式,建議如下:

  • 資料刪除頻率低、基於主鍵為條件的刪除,可通過DELETE FROM WHERE PK='xxx'刪除資料。

  • 資料刪除頻率低、基於任意條件的刪除,可通過DELETE刪除資料。

  • 通過TRUNCATE TABLE db_name.table_name PARTITION partition_name刪除指定二級分區。

  • 通過TRUNCATE TABLE db_name.table_name刪除指定表(包括所有二級分區)資料。

批量和即時匯入資料

  • 大量匯入:適用於巨量資料量匯入的情境,匯入處理程序中可以查詢舊資料,匯入操作完成後一鍵切換新資料。匯入失敗時,支援復原新資料,不影響查詢舊資料。

    例如,從MaxCompute、OSS中匯入資料到AnalyticDB MySQL版時,推薦使用INSERT OVERWRITE SELECT大量匯入方式,詳情請參見通過外表匯入至數倉版

    說明

    大量匯入單個表時,匯入任務會在系統中串列執行;大量匯入多個表時,匯入任務會在系統中並存執行,預設並存執行2個任務。

    例如將MaxCompute中的資料匯入AnalyticDB MySQL版時,MaxCompute中同一個表的不同分區中的資料會在系統中排隊串列匯入。

  • 即時匯入:適用於小資料量匯入的情境,例如百萬層級的表資料。例如,從RDS for MySQL、ECS自建MySQL資料匯入AnalyticDB MySQL版時,推薦使用INSERT INTO,詳情請參見通過外表匯入RDS MySQL資料至數倉版

說明

匯入資料到AnalyticDB MySQL版時,匯入任務使用AnalyticDB MySQL版中的資源,如果查詢資料期間需要匯入資料,建議在QPS(Query Per Second,每秒查詢率)較低時進行匯入操作。