본문 바로가기

DataOps/Database3

[Database] INSERT 작업 최적화: 부하 감소를 위한 실용적인 접근법 데이터베이스는 많은 애플리케이션의 핵심 구성 요소입니다. 특히 대량의 데이터를 처리하는 서비스에서 INSERT 작업은 성능에 상당한 영향을 미칠 수 있습니다. 이 글에서는 데이터베이스 INSERT 작업 시 부하를 줄이는 다양한 방법과 실제 예시를 살펴보겠습니다.1. 효율적인 INSERT 구문 사용하기기본 INSERT vs 특수 INSERT 구문INSERT IGNORE 대신 ON DUPLICATE KEY UPDATE 사용INSERT IGNORE는 충돌이 발생할 경우 오류를 무시하고 작업을 계속합니다. 하지만 이 방식은 모든 경우에 최적이 아닙니다.-- 일반적으로 사용되는 방식INSERT IGNORE INTO users (id, name, email, created_by) VALUES (1, 'John', .. 2025. 3. 20.
[Mysql] pt-online-schema-change 로 서비스 중단 없이 데이터베이스 스키마 변경하기 개요이 글에서는 운영 환경에서 스키마 변경이 필요할 경우, 어떻게 무중단 변경을 수행하는지 살펴보고. 관련해서 Mysql Online DDL, pt-online-schema-change 에 대해서 알아봅니다. 상황회사에서 사용하는 프로그램에서 요청 결과를 log 형식으로 데이터베이스에 저장하고 있습니다. 시간이 흘러 데이터가 많이 쌓였고, 자연스레 쿼리 성능이 떨어지기 시작했습니다. 확인해보니 34,977,366개의 데이터가 쌓여있었고 인덱스 개선을 통해 이를 개선해보기 결정했습니다. Mysql 8.0 을 사용 중이기 때문에 Mysql Online DDL(https://mystudylab.tistory.com/207) 을 활용해도 되었지만, 테이블의 크기가 크고 DML 이 자주 일어나는 테이블에 적용하면.. 2025. 3. 17.
[Mysql] MySQL Online DDL 개요이 글에서는 Mysql Online DDL에 대해서 알아봅니다.MySQL Online DDLMySQL의 Online DDL은 테이블 구조를 변경하면서도 서비스 중단을 최소화하기 위해 설계되었습니다. 등장 전에는 스키마 변경 시, 무조건 테이블 전체 락이 걸리기 때문에 운영 환경에서 사용하기 어려움이 있었습니다.데이터가 많을 수록 중단 시간은 더 오래걸리기 때문에 다른 전략이 필요헀고, DBA들은 복잡한 우회 방법을 개발해야 했습니다:수동으로 새 테이블 생성 후 데이터 일괄 복사트리거를 사용한 변경 내용 동기화테이블 스왑 및 애플리케이션 재시작MySQL 5.6 버전부터 공식적으로 Online DDL 기능을 도입되었고. 이 기능을 통해 많은 ALTER TABLE 작업을 테이블에 대한 전체 락(lock)을.. 2025. 3. 17.