DB 2

Database Table Lock

이번에 작업한 개발 내용 중, 데이터 컨버전이 필요한 부분이 있었는데, 해당 내용 실행 시, 테이블 락이 걸리면서 관련 테이블에 데이터를 쓸 수 없는(Write) 상황이 발생했다.테이블 락이란?트랜잭션이나 명령이 하나의 테이블 전체에 대해 잠금을 거는 행위락이 걸린 동안에는 다른 트랜잭션이 해당 테이블에 대해 읽거나 쓸 수 없다. 구분InnoDBMyISAM기본 락Row-level Lock (행 락)Table-level Lock (테이블 락)락 충돌 가능성낮음높음동시성높음낮음특징트랜잭션 지원트랜잭션 미지원우리는 InnoDB를 사용하기 때문에, InnoDB에서 테이블 락이 발생하는 대표적인 사례를 나열해보자.InnoDB에서 테이블 락이 걸리는 대표적 사례Foreign Key 제약 조건 충돌부모 테이블을 참조..

DB 2025.04.14

[MySQL] 테이블 파티셔닝

테이블 파티셔닝이란?하나의 큰 테이블을 논리적으로 여러 개의 파티션으로 나누어 저장하는 방식대량 데이터 처리에 효과적✅ 장점쿼리 성능 향상 → 파티션 프루닝(Partition Pruning)으로 특정 파티션만 조회데이터 삭제 속도 개선 → DELETE 대신 DROP PARTITION으로 빠르게 삭제INSERT 성능 향상 → 특정 파티션에만 추가테이블 크기 관리 최적화 → 데이터 분산 저장아카이빙 용이 → 특정 파티션을 파일로 저장 후 삭제 가능ℹ️ 파티션 프루닝: 조건에 따라 필요한 파티션만 조회하는 기법 ✅ 단점특정 쿼리에서 성능 저하파티션 키(파티션을 나누는 컬럼)이 조회 조건에 포함되어 있지 않으면 오히려 일반 테이블보다 느려질 수 있음인덱스 관리가 어려움파티션 키 외에 다른 컬럼을 인덱스로 추가..

DB 2025.04.14