2026/02/13 2

인덱스를 사용할 수 없는 경우

데이터베이스에서 인덱스를 타지 않는(Index Suppression) 현상은 SQL 튜닝에서 가장 기본적이면서도 중요한 주제입니다. 핵심 원칙은 "인덱스 컬럼을 변형하면 인덱스를 사용할 수 없다"는 것입니다. 이를 '좌변 가공(Left-Side Manipulation)'이라고도 부릅니다. 인덱스가 적용되지 않거나 비효율적으로 작동하는 대표적인 7가지 케이스를 정리해 드립니다.1. 인덱스 컬럼에 변형(함수, 연산)을 가한 경우 (가장 흔함)인덱스는 원본 값을 기준으로 정렬되어 있습니다. 컬럼 값을 가공하면 정렬 순서가 깨지므로 인덱스를 탈 수 없습니다.안 좋은 예: WHERE SUBSTR(name, 1, 1) = 'K' (함수 사용)안 좋은 예: WHERE salary * 12 > 5000 (연산 사용)좋..

DB 2026.02.13

[뷰] 갱신제약

데이터베이스에서 뷰(View)는 실제 데이터를 저장하지 않는 '가상의 테이블'이기 때문에, 뷰를 통해 데이터를 입력(INSERT), 수정(UPDATE), 삭제(DELETE)하는 데에는 구조적인 한계(제약사항)가 존재합니다. 핵심 원칙은 "뷰를 통해 변경한 내용이 실제 기본 테이블(Base Table)의 어떤 행(Row)을 변경해야 하는지 명확하게 추적할 수 있어야 한다"는 점입니다. 이를 위반하는 경우 DBMS는 뷰의 갱신을 허용하지 않습니다. 주요 제약사항을 5가지 핵심 항목으로 정리해 드립니다. [예시 테이블]1) DEPT (부서 테이블)부서 정보를 관리하는 부모 테이블입니다. dept_no가 기본키(PK)입니다.dept_no (PK)dept_name10영업부20개발부2) EMP (사원 테이블)사원 ..

DB 2026.02.13