Mariadb 대량 삭제에 관해 질문 있습니다 0 0 493

by 캐뉴비 [2021.09.14 16:31:13]


전체테이블 500만건 중에 250만건 정도 날릴려고 합니다

mariadb 쪽 확인해보니 loop 돌아서 지우는게 좋다 나와 있어 작성 해 봤습니다

 

DROP PROCEDURE IF EXISTS loop_test;
DELIMITER $$
CREATE PROCEDURE loop_test(IN _tblnm varchar(100), IN _cd int(3))
 BEGIN
 REPEAT
  SET @prep_stmt = CONCAT('DELETE FROM ', _tblnm, ' WHERE CD = ', _cd, ' LIMIT 10000');
     PREPARE stmt FROM @prep_stmt; 
     EXECUTE stmt; 
 UNTIL ROW_COUNT() = 0 end REPEAT;
 end;

 

innodb 이며 300만건씩 인서트 일어나며 종종 지웁니다.

그냥 delete 보다 속도가 떨어지는거 같은데 개선방법이 없을까요?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입