본문 바로가기

DB/MySQL

(3)
1000만건의 데이터를 커버링 인덱스를 사용하여 쿼리 최적화하기 사이드 프로젝트 진행중 커버링 인덱스를 사용하여 쿼리 성능을 최적화한 방법을 공유하려 합니다.쿼리 분석create table reservations( id bigint auto_increment primary key, spot_id bigint not null, head_count int not null, reservation_date datetime(6) not null, phon..
MariaDB 내 중복된 데이터 삭제하기 MariaDB에서 중복된 데이터를 삭제하는 방법을 알아보겠습니다. SELECT col1, COUNT(col1) FROM tbl GROUP BY col1 HAVING COUNT(col1) > 1; 위 SELECT 쿼리를 통해 특정 열에서 같은 값을 가지는 데이터가 몇개 있는지 추출할 수 있습니다. DELETE t1 FROM tbl t1 JOIN tbl t2 ON t1.col1=t2.col1 WHERE t1.id > t2.id; 위 DELETE 쿼리를 통해 특정 열에서 같은 값을 가지는 데이터중 가장 먼저 생성된 한 행을 제외한 중복 데이터들을 삭제할 수 있습니다. 참조 https://www.mysqltutorial.org/mysql-delete-duplicate-rows/
외래 키가 있는 테이블을 truncate/delete하는 방법 외래키가 존재하는 테이블 내의 데이터를 삭제할 때 위와 같은 에러 메시지가 발생한다. set FOREIGN_KEY_CHECKS = 0; TRUNCATE user_table; set FOREIGN_KEY_CHECKS = 1; 위와 같이 외래키를 체크 하지 않는 설정으로 변경해준 후, truncate하면 정상적으로 실행되는 것을 알 수 있다. 이후 반드시 외래키를 체크하게 설정을 변경해주어야 한다.