DBbrain 提供热点更新保护功能,针对于频繁更新或秒杀类业务场景,大幅度优化对于热点行数据的 UPDATE 操作的性能。当创建热点更新保护任务后,系统会自动探测是否有单行的热点更新,如果有,则会让大量的并发 UPDATE 排队执行,以减少大量行锁造成的并发性能下降,提高高并发场景的数据库性能。
热点更新保护功能还支持查看、关闭和删除热点更新保护任务。
支持版本
MySQL:仅支持 MySQL5.7-20200930及以上版本、MySQL8.0-20200830及以上版本。
TDSQL-C for MySQL:仅支持 MySQL5.7-2.1.8以上版本、MySQL8.0-3.1.5及以上版本。
使用限制
若已有状态为运行中的热点更新保护任务,则不允许创建新的任务。
操作步骤
创建热点更新保护任务
1. 登录 DBbrain 控制台。
2. 在左侧导航栏,选择诊断优化。
3. 在页面上方选择数据库类型和实例 ID,选择实时会话页签。
4. 在实时会话页面,选择热点更新保护页签。
5. 单击创建任务,根据页面提示配置任务参数,配置完成后,单击确定。
参数说明如下表所示。
参数 | 说明 |
等待超时阈值 | 取值范围:1000~100000000。 表示热点更新保护队列中的等待时间。 当设置的阈值小于最大值100000000,在热点更新保护队列中的等待时间超过该阈值时,该事务跳出热点更新保护队列,按照原有的加行锁逻辑执行。 当设置的阈值为最大值100000000,在热点更新保护队列中的等待时间超过该阈值时,该事务将永远等待。 |
执行方式 | 包括定时关闭和手动关闭。 定时关闭:选择定时关闭后,需设置任务执行时间,提交任务后即开始执行,执行时间结束自动关闭任务。任务执行过程中也支持在任务列表操作列手动关闭任务。 手动关闭:选择手动关闭后,提交任务后将一直执行,直到在任务列表的操作列手动关闭任务,任务才可终止。 |
查看、关闭、删除热点更新保护任务
1. 进入热点更新保护任务列表。
2. 查看、关闭和删除热点更新保护任务。
列表参数说明如下表所示。
参数 | 说明 |
状态 | 包括运行中、已完成、已终止。 运行中:任务正在执行中。 已完成:执行方式为自动关闭的任务,在指定的任务执行时间结束后自动关闭。 已终止:分为以下两种情况。 执行方式为自动关闭的任务,在指定的任务执行时间结束前手动关闭。 执行方式为手动关闭的任务被手动关闭。 |
开始时间 | 热点更新保护任务创建完成的时间,即任务开始执行的时间。 |
执行时间 | 任务执行时间。 若状态为已完成或已终止,则表示任务正常运行的时间。 若状态为运行中,则表示任务已经执行的时间。 |
剩余时间 | 任务执行的剩余时间。 当创建任务时任务执行时间为自动关闭: 当状态为运行中,剩余时间 = 执行时间(创建任务时设置的)- 执行时间 (任务列表中显示的)。 若状态为已完成或已终止,则剩余时间为0。 当创建任务时任务执行时间为手动关闭:剩余时间显示--。 |
等待超时阈值 | 取值范围:1000~100000000。
表示热点更新保护队列中的等待时间。
当设置的阈值小于最大值100000000,在热点更新保护队列中的等待时间超过该阈值时,该事务跳出热点更新保护队列,按照原有的加行锁逻辑执行。
当设置的阈值为最大值100000000,在热点更新保护队列中的等待时间超过该阈值时,该事务将永远等待。 |
操作 | 关闭任务:当需要终止状态为运行中的任务时,可在操作列单击关闭。 删除任务:当需要删除状态为已终止或已完成的任务时,可单个或批量删除任务。 单个删除:在任务对应的操作列单击删除。 批量删除:在热点更新保护任务列表选择一个或多个待删除的任务,在任务列表上方单击删除。 |