索引延迟删除量限制(idx_delay_del_limit)
📄字数 721
👁️阅读量 加载中...
引入版本
v12.0.0
功能描述
索引记录延迟删除的数量阈值。
参数属性
属性 | 属性值 |
---|---|
参数类型 | INTEGER |
默认值 | 0 |
取值范围 | [0, 10000000] |
影响范围 | 系统级 |
修改方式 | 离线修改,重启生效 |
使用场景说明
- idx_delay_del_limit = 0,对延迟删除索引的数量不设限制。
- 索引维护过程中导致的索引记录删除会延迟到事务提交阶段作为延迟项进行处理,idx_delay_del_limit 可限制延迟删除索引记录的数量,当延迟删除的索引记录数大于 idx_delay_del_limit 时,系统将不再处理后续等待延迟删除索引记录的任务,以使其事务尽快提交。延迟删除索引任务未处理结束,会使索引信息与表数据状态不同步,没有删除的索引数据对数据查询的正确性没有影响,但会占用存储空间,可通过重建索引进行处理。
- idx_delay_del_limit 对主键索引和唯一值索引不生效。
- 若索引字段上的数据重复度较高,索引(B-Tree)的遍历和维护代价都会大幅提升,延迟删除索引记录的执行效率必然会降低,进而表现为事务执行缓慢;延迟删除索引会持有对象和数据行锁资源,会影响其它事务的访问和使用。
- 正处于处理延迟任务的事务收到外部 KILL 事务信号后,当前事务不会回滚;对于延迟删除索引的延迟任务,外部的 KILL 事务信号会中断当前索引删除,正常提交事务。
示例
离线修改 idx_delay_del_limit
编辑 xugu.ini 修改 idx_delay_del_limit,重启数据库服务后生效。在线查看 idx_delay_del_limit
sql
SQL> show idx_delay_del_limit;
+---------------------+
| IDX_DELAY_DEL_LIMIT |
+---------------------+
| 0 |
+---------------------+
(1 row)
Use time:0 ms.