count(*) cnt 부분을
trigger 처리 후
prq_sf_log 생성 mms 로그 성공한 값만 저장 핸드폰과 날짜 '0000-00-00'이 키가 된다.
create table prq_sf_log (
ms_hp varchar(20) not null default '' comment '핸드폰',
ms_date date not null default '0000-00-00' comment '날짜',
ms_success int unsigned not null default 0 comment 'mms성공갯수',
primary key(ms_hp,ms_date));
트리거 생성
delimiter |
CREATE TRIGGER success_log BEFORE INSERT ON prq.prq_mms_log
FOR EACH ROW
BEGIN
SET @success=IF(substr(NEW.mm_result,1,1)="2",true,false);
IF(@success) THEN
INSERT INTO prq_sf_log VALUES (NEW.mm_sender,date(now()),1)
ON DUPLICATE KEY UPDATE ms_success=ms_success+1;
END IF;
END;
|
delimiter ;
간단히 세도록 변경
private static int get_send_cnt(String mb_hp){
int retVal = 0;
StringBuilder sb = new StringBuilder();
MyDataObject dao = new MyDataObject();
// 기존 코드 : 쿼리당 0.75초 0.425초 발생 개당 15씩이므로 6 ~ 11초 딜레이 예상
// sb.append("SELECT count(*) cnt FROM `prq_mms_log` ");
// sb.append("where mm_sender=? ");
// sb.append("and left(mm_result,3)='200' ");
// sb.append("and date(now())=date(mm_datetime);");
// 개선 코드 : 0.001초 예상 실제 0.000 초 쿼리 전일쿼리는 삭제
sb.append("select ms_success cnt from prq_sf_log ");
sb.append("where ms_hp=? ");
sb.append("and ms_date=date(now());");
/*
...중략
count(*) cnt 부분을 trigger 처리 후 prq_sf_log 생성 mms 로그 성공한 값만 저장 핸드폰과 날짜 '0000-00-00'이 키가 된다.
트리거 생성
간단히 세도록 변경
익일 적용 예정