2026/07/05 2

Ch11. 물리적 모델링 실습 - 인덱스 설계

인덱스는 데이터베이스 테이블의 특정 컬럼(들)의 데이터를 빠르게 찾을 수 있도록 도와주는 일종의 "찾아보기"나 "목차"와 같다. 인덱스가 없으면, 데이터베이스는 원하는 데이터를 찾기 위해 테이블의 모든 행을 처음부터 끝까지 스캔해야 한다. 이를 풀 테이블 스캔(Full Table Scan)이라고 한다. 데이터가 수백만, 수천만 건이 되면 이는 재앙과도 같은 성능 저하를 일으킨다. "우리 쇼핑몰의 어떤 기능이 인덱스를 필요로 할까?" 이 질문에 답하기 위해, 우리 쇼핑몰에서 매우 자주 발생할 것으로 예상되는 핵심적인 조회 시나리오들을 분석하고, 그에 맞는 인덱스를 전략적으로 추가해 보자. MySQL 인덱스 자동 생성MySQL에서는 Primary Key(PK)와 Unique Key(UK), Foreign K..

Ch11. 물리적 모델링 실습 - 설계

논리적 모델링 확인 이 논리적 모델을 우리가 사용하기로 한 MySQL이라는 특정 데이터베이스에 맞게 변환하고, 성능과 효율성, 그리고 현실적인 제약 조건들을 고려하여 최적화하는 물리적 모델링을 진행할 차례다. 물리적 모델링물리적 모델링은 각 테이블별로 어떤 데이터 타입을 선택하고, 어떤 제약조건과 인덱스를 추가해야 할지 신중하게 결정하며 "CREATE TABLE" 구문을 완성해 나간다. 물리적 모델링의 결과는 크게 테이블 정의서와 실제 테이블을 만들 수 있는 스크립트인 DDL이 나와야 한다. 물리적 모델링의 핵심 목표 중 하나는 바로 성능이다. 논리적으로 아무리 완벽한 모델이라도, 실제 서비스에서 쿼리가 느리다면 아무 소용이 없다. 이번 시간에는 조회 성능을 극대화하기 위해 의도적으로 정규화 원칙을 위..