[SQL] #09 뷰(View)와 인덱스(Index) 완벽 이해! 속도와 재 사용을 동시에 잡자!

2025. 7. 31. 16:00·Database/SQL
반응형

 

안녕하세요 토스트데브입니다 😊
오늘은 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
'Database/SQL' 카테고리의 다른 글
  • [SQL] #11 SQL DCL과 TCL 완전 정리, 권한 관리와 트랜잭션 제어 쉽게 이해하기
  • [SQL] #10 SQL 데이터 정의어(DDL) 완전 정리, CREATE부터 DROP까지
  • [SQL] #08 SQL 서브쿼리 완전 정리, 중첩 쿼리의 개념과 예제까지
  • [SQL] #07 SQL JOIN 완전 정복! INNER부터 LEFT, RIGHT까지 한눈에
TOASTDEV
TOASTDEV
인스턴트 코딩 #토스트데브 #토스트뎁 #코딩공부 #개발입문
  • TOASTDEV
    토스트뎁
    TOASTDEV
    • 분류 전체보기 (63) N
      • 알쓸신잡 (20)
        • 코딩에 대하여 (13)
        • 컴퓨터에 대하여 (5)
        • IT 국내외 소식 (2)
      • Web Front (6)
        • HTML (6)
        • CSS (0)
        • JavaScript (0)
      • Programming (15)
        • PHP (15)
      • Database (11) N
        • SQL (11) N
        • MySQL (0)
      • Server (11)
        • Linux (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Youtube Toastdev
    • Naver Blog
  • 공지사항

    • [유튜브] 유튜브 영상 업로드 안내
  • 인기 글

  • 태그

    SQL문법
    리눅스기초
    웹개발
    php코딩
    ubuntu서버
    프론트엔드
    우분투서버
    코딩공부
    dbms
    php문법
    php입문
    코딩기초
    SQL강의
    웹개발기초
    php
    코딩입문
    SQL기초
    웹개발입문
    ubuntuserver
    웹프로그래밍
    html기초
    HTML
    데이터분석
    ict
    리눅스서버
    php기초
    서버관리
    sql
    서버입문
    데이터베이스
  • 최근 댓글

  • 최근 글

  • 전체
    오늘
    어제
  • 반응형
  • hELLO· Designed By정상우.v4.10.3
TOASTDEV
[SQL] #09 뷰(View)와 인덱스(Index) 완벽 이해! 속도와 재 사용을 동시에 잡자!
상단으로

티스토리툴바