目录
一、环境信息
|------|------------------------------------------------------------------------------------------------------------------------------|
| 名称 | 值 |
| CPU | Intel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz |
| 操作系统 | CentOS Linux release 7.9.2009 (Core) |
| 内存 | 5G |
| 逻辑核数 | 6 |
| DM版本 | 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284194-20240703-234060-20108 4 Msg Version: 12 5 Gsu level(5) cnt: 0 |
二、问题描述
客户表示在截断数据表时经常发生锁超时的错误。
三、问题分析
在做截断操作期间,会有业务频繁的查询相同业务表,写锁和读锁互斥,所以出现了锁超时的报错。
四、解决方法
|----|--------------------------------------------------------------------------------------------|
| 编号 | 方法描述 |
| 1 | 修改参数SELECT_LOCK_MODE为1。 1:查询在操作符中上锁,相比集中上锁的方式,封锁范围较小、频率较高,适用于期望查询语句不阻塞DDL,且能够接受查询语句被打断的场景。 |
| 2 | 优化查询SQL效率,减少持有锁的时间。 |
| 3 | 在业务空闲期执行截断操作。 |