出入库数据为0的问题解决 20251222 —— insert/update 类型的语句 #182

Open
opened 2025-12-22 19:38:04 +08:00 by bigtran · 0 comments
Owner

update语句慢的,在于缺“等值+状态+时间”复合索引,导致锁了不该锁的成千上万行

考虑到索引和优化select查询的时候 #178 重复,重新优化如下
image.png
image.png
image.png

优化策略

/* 1. 以 hand_time 范围为主,覆盖多数业务查询+UPDATE-1 / UPDATE-3 */
CREATE INDEX idx_ht_cover
      ON opm_mw_info_data
         (organ_name(20), dept_name(10), hand_time, waste_status(10), waste_type(10), weight);

/* 2. 以 in_ware_time 范围为主,覆盖 in_ware 类查询+UPDATE-2 部分场景 */
CREATE INDEX idx_iwt_cover
      ON opm_mw_info_data
         (organ_name(20), dept_name(10),  in_ware_time, waste_status(10),waste_type(10), weight);

/* 3. 以 scale 等值+recl_time 范围,覆盖 UPDATE-2 主场景 */
CREATE INDEX idx_scl_cover
      ON opm_mw_info_data
         (organ_name(20), scale(20), recl_time, waste_status(10), waste_type(10), weight);

image.png

insert语句慢的,肯定是出现了业务锁的情况

大于1秒的 insert和update语句的时间分布

image.png

## update语句慢的,在于缺“等值+状态+时间”复合索引,导致锁了不该锁的成千上万行 考虑到索引和优化select查询的时候 #178 重复,重新优化如下 ![image.png](/attachments/791643fa-d482-4db9-84a9-04cef0326c90) ![image.png](/attachments/61bed65b-0167-4d35-9c47-21e3faecc9e8) ![image.png](/attachments/defd29d6-b9d1-49b0-9e0e-41bec83ffd80) ## 优化策略 ``` /* 1. 以 hand_time 范围为主,覆盖多数业务查询+UPDATE-1 / UPDATE-3 */ CREATE INDEX idx_ht_cover ON opm_mw_info_data (organ_name(20), dept_name(10), hand_time, waste_status(10), waste_type(10), weight); /* 2. 以 in_ware_time 范围为主,覆盖 in_ware 类查询+UPDATE-2 部分场景 */ CREATE INDEX idx_iwt_cover ON opm_mw_info_data (organ_name(20), dept_name(10), in_ware_time, waste_status(10),waste_type(10), weight); /* 3. 以 scale 等值+recl_time 范围,覆盖 UPDATE-2 主场景 */ CREATE INDEX idx_scl_cover ON opm_mw_info_data (organ_name(20), scale(20), recl_time, waste_status(10), waste_type(10), weight); ``` ![image.png](/attachments/839842d1-456b-40ad-9685-bb20db8c69dc) ## insert语句慢的,肯定是出现了业务锁的情况 ## 大于1秒的 insert和update语句的时间分布 ![image.png](/attachments/fc3c9a09-2afa-466a-b735-3096238323e4)
bigtran added the 4-document label 2025-12-22 20:39:01 +08:00
bigtran added the 6-now-commit-to-fix label 2025-12-27 22:36:59 +08:00
Sign in to join this conversation.