日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

DML無鎖變更概覽

DML無鎖數據變更可以將單個SQL拆分成多個批次執行,能更好地滿足業務方對大量數據變更的需求,例如歷史數據清理、全表更新字段等,保證執行效率,減小對數據庫性能、數據庫空間等的影響。

背景信息

當業務累積了大量數據時,需要定期清除表中的數據,或對在線數據和歷史數據進行分隔管理。您可能會遇到以下問題:

  • 單條SQL影響行數過多,日志超過閾值導致任務執行失敗。

  • SQL沒有使用索引導致鎖表,數據庫負載增加,甚至造成業務故障。

此類問題通常可通過分批執行的方法解決,但是仍存在風險,例如:

  • 研發寫程序分批處理:

    • 分批方式不當,例如直接用LIMIT進行分批,可能仍會鎖表。

    • 分批執行的頻率沒有控制好,會造成主備延遲過大。

  • DBA提取目標數據手動拆分:

    人工拆分非常繁瑣,工作量大,且易出錯,并且很難進行動態調整。

為解決上述問題,DMS提供了DML無鎖變更。具體操作,請參見DML無鎖變更

適用場景

  • 歷史數據清理

  • 全表更新字段

支持的數據庫類型

  • MySQL:RDS MySQLPolarDB MySQL版MyBase MySQLPolarDB分布式版、其他來源MySQL

  • PostgreSQL:RDS PostgreSQLPolarDB PostgreSQL版MyBase PostgreSQL、其他來源PostgreSQL

  • MariaDB:RDS MariaDB、其他來源MariaDB

  • OceanBase MySQL模式

  • PolarDB PostgreSQL版(兼容Oracle)

功能特點

  • 不會影響業務。

  • 減少數據變更對數據庫性能、數據庫空間等的影響。

  • 能更好地滿足業務方對大量數據變更的需求,保證數據變更的執行效率。

主要原理

  • 分批執行單個SQL:強大的DMS引擎將單個SQL拆分成多個批次執行。

  • 每個批次執行后有Sleep(暫停)進行緩沖。

使用限制

當前僅支持UPDATE、DELETE、INSERT_SELECT類型的SQL。若需要使用其他類型的SQL,您可提交普通數據變更工單。具體操作,請參見普通數據變更

SQL類型

限制項

UPDATE、DELETE

  • 僅支持UPDATE或DELETE單表操作。

  • 更新、刪除(UPDATE、DELETE)數據時必須添加WHERE子句。若需要更新或刪除全表,則需要添加WHERE 1=1子句。

  • 不支持UPDATE、DELETE包含子查詢篩選條件。

  • 不支持LIMIT子句。

INSERT_SELECT

  • SELECT子句僅支持單表操作。

  • SELECT部分需要帶上WHERE子句,若需要SELECT全表數據,則需要帶上WHERE 1=1

  • SELECT部分不支持LIMIT、ORDER BY、GROUP BY等子句。