You need to enable JavaScript to run this app.
文档中心
数据库工作台

数据库工作台

复制全文
下载 pdf
数据变更工单
创建无锁数据变更工单
复制全文
下载 pdf
创建无锁数据变更工单
数据库工作台 DBW 提供无锁数据变更功能,该功能可以将单条 SQL 语句拆分成多个批次执行,适用于大量数据变更的场景,例如清理历史数据、备份大量数据等,可以提高数据库的性能和可扩展性。本文介绍如何在 DBW 控制台创建无锁数据变更工单。​
前提条件​
  • 已添加为 DBW 角色的用户。详细操作,请参见添加用户。​
  • 已授予添加为 DBW 角色用户相关权限。详细操作,请参见权限管理。​
使用限制​
  • 在创建无锁数据变更工单时,选择的表需要有非空唯一索引或主键。​
  • 在创建无锁数据变更工单时,SQL 文本中只能包含一条 SQL 语句。​
  • 仅支持选择开启安全管控的实例创建数据变更工单进行纳管。​
  • 仅支持在 DBW 用户管理内添加的用户创建工单。​
  • 支持的 SQL 类型包括 UPDATE、INSERT_SELECT 和 DELETE。关于 SQL 类型的具体限制如下表所示。​
  • ​
    SQL 类型​
    限制说明​
    • UPDATE​
    • DELETE​
    • 仅支持 UPDATE 或 DELETE 单表操作。​
    • 不支持 UPDATE、DELETE 包含子查询筛选条件。​
    • 不支持 LIMIT 子句。UPDATE 的列不能是主键列​
    INSERT_SELECT​
    SELECT 子句仅支持单表操作。SELECT 部分不支持 LIMIT、ORDER BY、GROUP BY 等子句。​
    ​
适用场景​
  • 目标表为大表且更新语句时不使用索引。​
  • 单条 SQL 事务太大,超出 Binlog 的限制。​
  • 清理历史数据。​
  • 大量数据需要备份。​
优势​
无锁数据变更可以提高数据库的性能和可扩展性,具体如下所示:​
  • 性能高:无锁数据变更在进行数据读取时不会加锁,减少了锁的开销,能够提高系统的处理性能和并发量。​
  • 可扩展性强:无锁数据变更通过减少锁定,提高了系统的扩展性,使得系统能够处理更多的并发用户和事务。​
执行原理​
  • 分批执行单条 SQL:数据库工作台 DBW 将单条 SQL 拆分成多个批次执行。默认情况下,按照主键从小到大的顺序分批执行,直到扫描完所有行。​
  • 每个批次执行后有 sleep(暂停)时间进行缓冲。​
操作步骤​
  1. 登录 DBW 控制台。​
  1. 在顶部菜单栏,选择地域。​
  1. 在左侧导航栏,选择数据管理 > 工单列表。​
  1. 在工单列表页面,单击创建工单。​
  1. 在弹出的对话框中,选择数据变更 > 无锁数据变更。​
  1. 在创建无锁数据变更工单的控制面板,配置以下参数信息。​
  • ​
    参数​
    ​
    说明​
    基本信息​
    创建人​
    默认为当前登录的账号,不支持修改。​
    ​
    工单标题​
    (可选)自定义工单标题。工单标题的长度不能超过 200 个字符。​
    ​
    工单类型​
    选择无锁数据变更。 SQL 变更表示通过 UPDATE、INSERT_SELECT 和 DELETE 语句变更数据库中的数据,该变更通常用于改变数据库中的数据内容,但不会改变数据库的结构。​
    ​
    工单备注​
    自定义您的工单备注,建议和您的业务相关,方便后续查找。​
    库表选择​
    数据库类型​
    选择云数据库 veDB MySQL 版。​
    ​
    实例​
    从下拉列表中选择需要创建工单的实例。​
    ​
    数据库​
    从下拉列表中选择需要创建工单的数据库。​
    变更配置​
    执行命令​
    ​
    按需设置 SQL 语句。SQL 变更支持的 SQL 语句包括 UPDATE、INSERT 和 DELETE。​
    说明​
    无锁数据变更工单中,只能包含一条 SQL 语句。​
    策略配置​
    ​
    执行方式​
    按需选择执行方式,支持以下选择:​
    • 审批后自动执行:审批后将自动执行 SQL 语句。​
    • 审批后手动执行:审批后需申请人自行执行工单。​
    • 审批后定时执行:审批后可按指定时间执行工单。​
    ​
    执行开始时间​
    按需设置开始执行工单的时间。​
    说明​
    • 在执行方式选择审批后定时执行时,支持设置执行开始时间。​
    • 执行结构变更的时间段不可与实例的可维护时间段重叠。关于实例可维护时间窗口的详细信息,请参见设置可维护时间段。​
    ​
    执行结束时间​
    按需开启和设置工单执行结束时间。​
    说明​
    在执行方式选择审批后定时执行并设置了执行开始时间时,执行结束时间需晚于执行开始时间。​
    ​
    分批执行​
    按需设置以下信息:​
    • 每批执行行数:默认值为 1000,取值范围需大于等于 1000。​
    • 每 1 万行 sleep 时间:默认值为 0.5s,取值需大于等于 0。单位秒(s)。​
    • (可选)是否开启主备延迟检查:按需设置是否开启主备延迟。开启后当主备延迟大于设置的值时,则执行任务将被中断。​
    说明​
    • 默认情况下,按照主键从小到大的顺序分批执行,直到扫描完所有行​
    • 关闭主备延迟检查,可能导致主备延迟过大,影响主备切换。​
    ​
  1. 单击下一步:预检查。​
  1. 在工单预检查配置向导页面,可查看包括语法检查、安全规则检查、权限检查和影响行数(系统统计值,实际影响行数仍然以 SQL 执行为准)预检查项。​
  • 检查通过:表示预设的检查项均满足要求,不存在任何风险及不合规项。​
  • 待确认:表示检测到非阻断性问题或潜在风险,不过不影响工单的核心执行逻辑。系统建议予以关注,但允许继续操作。您需手动确认并忽略提示项,才可继续提交工单。​
  • 未通过:表示存在阻断性问题,若继续执行,可能会导致失败、数据丢失或系统异常。您可以单击检查项的结果详情列中的查看详情,查阅未通过的具体原因,修复后重新创建工单。​
说明​
  • 如遇预检查未通过的情况,您可以单击检查项的结果详情列的查看详情,查阅未通过的具体原因,并在修复后重新创建工单。​
  • 若您的账号为主账号,在语法检查和影响行数预检查均通过,但安全规则检查或权限检查未通过的情况下,可直接单击确定创建工单。​
  • 若您的账号为子用户,在语法检查、影响行数预检查和权限检查均通过,且安全规则检查中无高预警检查项未通过的情况下,可直接单击确定创建工单。​
  1. 单击提交工单。​
后续操作​
工单提交后,您可在工单详情的执行工单配置向导页面实时查看整体执行进度、已执行 SQL 数量以及每条 SQL 的执行状态、影响行数、执行日志等详细信息。详细信息,请参见管理数据变更工单。​
最近更新时间:2026.09.01 14:02:00
这个页面对您有帮助吗?
有用
有用
无用
无用