반응형
안녕하세요 토스트데브입니다 😊
오늘은 SQL에서 자주 사용되지만 헷갈릴 수 있는 두 가지 개념, 뷰(View)와 인덱스(Index)에 대해 깔끔하게 정리해드릴게요!
👁️ SQL 뷰(View)란?
✅ 뷰의 정의
뷰(View)는 하나 이상의 테이블에서 미리 정의해둔 SELECT 쿼리의 결과를 저장한 가상의 테이블입니다.
📌 실제 데이터를 저장하지 않고, 쿼리 결과만을 보여주는 읽기 전용 창이라고 생각하면 이해가 쉬워요.
📌 뷰의 사용 목적
- 복잡한 쿼리를 간단하게 재사용
- 민감한 데이터를 숨기고 보여주기
- 데이터 접근을 논리적으로 분리
- 보안성과 가독성 향상
🧪 뷰 생성 예제
CREATE VIEW active_users AS
SELECT id, name, email
FROM users
WHERE is_active = 1;
➡️ 이제 SELECT * FROM active_users; 만 해도 항상 “활성 사용자 목록”이 나옵니다.
⚠️ 뷰의 주의사항
- 기본적으로 가상 테이블이므로 실제 데이터를 저장하지 않음
- 일부 DBMS에서는 업데이트가 제한될 수 있음
- VIEW는 항상 최신 데이터를 기반으로 동작 (동기화 걱정 없음)
⚡ SQL 인덱스(Index)란?
✅ 인덱스의 정의
인덱스(Index)는 테이블의 특정 컬럼에 대해 검색 속도를 빠르게 하기 위한 데이터 구조입니다.
📚 책의 목차처럼, 원하는 데이터를 빠르게 찾도록 도와주는 역할이에요.
📌 인덱스를 사용하는 이유
- WHERE, JOIN, ORDER BY, GROUP BY 등에 사용되는 검색 성능 개선
- 수천만 건의 데이터 중에서도 빠르게 원하는 값을 찾을 수 있음
🧪 인덱스 생성 예제
CREATE INDEX idx_users_email
ON users (email);
➡️ 이제 WHERE email = 'test@example.com' 같은 조건의 검색 속도가 훨씬 빨라집니다.
⚠️ 인덱스 주의사항
- 검색 속도는 빨라지지만, 삽입/수정/삭제 성능은 약간 느려질 수 있음
- 너무 많은 인덱스를 만들면 오히려 성능이 저하될 수 있음
- 인덱스는 자주 조회되는 컬럼 위주로 설정하는 것이 좋음
✍️ 마무리
- 뷰(View)는 복잡한 쿼리를 단순하게,
- 인덱스(Index)는 느린 검색을 빠르게 만들어 줍니다.
이 둘은 SQL 실무에서 유지보수와 성능 최적화의 핵심 도구입니다.
#SQL #SQL기초 #뷰 #View #인덱스 #Index #데이터베이스 #DBMS #성능최적화 #SQL튜닝 #쿼리성능 #SQL강의 #웹개발 #MySQL
반응형
'Database > SQL' 카테고리의 다른 글
[SQL] #11 SQL DCL과 TCL 완전 정리, 권한 관리와 트랜잭션 제어 쉽게 이해하기 (0) | 2025.08.02 |
---|---|
[SQL] #10 SQL 데이터 정의어(DDL) 완전 정리, CREATE부터 DROP까지 (1) | 2025.08.01 |
[SQL] #08 SQL 서브쿼리 완전 정리, 중첩 쿼리의 개념과 예제까지 (1) | 2025.07.30 |
[SQL] #07 SQL JOIN 완전 정복! INNER부터 LEFT, RIGHT까지 한눈에 (1) | 2025.07.29 |
[SQL] #06 SQL 데이터 삽입(INSERT), 수정(UPDATE), 삭제(DELETE) (0) | 2025.07.28 |