경험 중심 1인칭 답변
인덱싱은 조회 성능과 쓰기 비용의 트레이드오프를 이해하고 쿼리 패턴에 맞게 설계하는 것이 핵심입니다. 인덱스가 많으면 SELECT는 빠르지만 INSERT·UPDATE 시 오버헤드가 증가합니다. 수업 프로젝트에서 복합 인덱스를 잘못 설정해 full scan이 계속 발생한 경험이 있었고, EXPLAIN으로 실행 계획을 분석해서 인덱스를 조정했습니다. 트랜잭션은 ACID 속성 중 Isolation 수준을 상황에 맞게 선택하는 것이 실무에서 더 중요합니다.
Read Committed와 Repeatable Read의 차이가 동시성 처리에서 어떤 결과를 만드는지를 직접 테스트해본 경험이 이해를 깊게 해줬습니다. 인덱스와 트랜잭션은 함께 설계해야 실제 워크로드에서 예상대로 동작합니다. 앞으로도 인덱스와 트랜잭션을 실행 계획과 워크로드를 보면서 함께 설계하는 방식을 유지하겠습니다.
인덱스는 쿼리 패턴을 먼저 파악해야 제대로 설계할 수 있습니다. 트랜잭션 격리 수준을 상황에 맞게 선택하는 것이 동시성 문제를 사전에 막는 핵심입니다. 실행 계획 분석이 데이터베이스 성능 최적화의 출발점이라는 것을 경험에서 배웠습니다.