찾다

 >  Q&A  >  본문

MySQL 교체 교착 상태

안녕하세요 여러분, 문제가 있어 도움을 요청하고 싶습니다.
이제 다음 구조의 비즈니스 테이블이 생겼습니다
CREATE TABLE rms_pickup_step_agg (rms_pickup_step_agg (
htl_cd varchar(20) DEFAULT NULL COMMENT '酒店编号',
para_typ int(11) DEFAULT NULL COMMENT '汇总类型',
para_cd varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '汇总代码',
sub_typ int(11) DEFAULT NULL COMMENT '子类型',
sub_cd varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '子类型代码',
pickup_day int(11) DEFAULT NULL COMMENT 'Pickup day',
live_dt varchar(30) DEFAULT NULL,
occ float DEFAULT NULL COMMENT '出租房数',
rev float DEFAULT NULL COMMENT '房费收入',
update_dt datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY idx01_rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dthtl_cd varchar(20) DEFAULT NULL COMMENT 'hotel number',
para_typ< /code code> int(11) DEFAULT NULL COMMENT '요약 유형',

para_cd varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '요약 코드',

sub_typ int (11) DEFAULT NULL COMMENT '하위 유형',
sub_cd varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '하위 유형 코드',
pickup_day int(11 ) DEFAULT NULL COMMENT '픽업일',

live_dt varchar(30) DEFAULT NULL,

occ float DEFAULT NULL COMMENT '대여 객실 수',

rev < /code> float DEFAULT NULL COMMENT '객실 요금 수익',

update_dt datetime DEFAULT CURRENT_TIMESTAMP COMMENT '업데이트 시간',

UNIQUE KEY idx01_rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day, live_dt) BTREE 사용

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='픽업 속도표';

🎜이제 동시에 명령문을 실행하는 두 개의 스레드가 있습니다. 🎜스레드 1은 대체 INTO rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dt,occ,rev,update_dt) VALUES ('101336', '0'을 실행합니다. , '0', '3', 'NC', '14', '2017', '7.0', '3160.40', '2017-05-29 07:31:27');🎜제출하지 마세요🎜 🎜스레드 2는 대체 INTO rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dt,occ,rev,update_dt) VALUES ('101336', '0', '0', '3', 'NC', '14', '2016', '7.0', '3160.40', '2017-05-29 07:31:27');🎜 🎜스레드 2가 잠금을 기다리고 있는 것으로 나타났습니다. 🎜 🎜자물쇠는 왜 있는 걸까요? 감사해요! 🎜
習慣沉默習慣沉默2763일 전719

모든 응답(2)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-06-06 09:54:12

    교착 상태가 발생한 것이 확실합니까? 충돌이 없는 것은 당연합니다. 이 고유 인덱스는 충돌하지 않습니다. 이 테이블에는 기본 키가 없습니다. 기본 키를 추가하세요.

    회신하다
    0
  • 为情所困

    为情所困2017-06-06 09:54:12

    innodb의 기본 격리 수준에서는 고유 인덱스를 대체합니다. 이론적으로 행 잠금은 이러한 작업만 수행하면 안 됩니다. 5.7에서도 이런 종류의 거래 잠금에 대한 업데이트를 본 적이 없습니다

    회신하다
    0
  • 취소회신하다