본문 바로가기

sql

인덱스와 뷰

인덱스(Index)와 뷰(View)는 관계형 데이터베이스에서 데이터를 효율적으로 조작하고 관리하는 데 도움을 주는 데 사용됩니다.

  1. 인덱스(Index):
    • 개념: 인덱스는 데이터베이스 내의 특정 열(또는 열의 집합)에 대한 빠른 검색 및 접근을 가능하게 합니다. 이는 데이터베이스에서 특정 값 또는 범위를 검색할 때 속도를 향상시킵니다.
    • 종류:
      • 클러스터형 인덱스(Clustered Index): 데이터베이스 테이블의 행을 저장하는 데 사용되며, 주로 기본 키(primary key)에 생성됩니다. 한 테이블당 하나의 클러스터형 인덱스만 가질 수 있습니다.
      • 비클러스터형 인덱스(Non-Clustered Index): 데이터베이스 테이블의 행을 저장하지 않고 별도의 데이터 구조에 인덱스 키 값과 해당 키 값이 가리키는 테이블의 위치를 저장합니다. 테이블당 여러 개의 비클러스터형 인덱스를 가질 수 있습니다.
      • 고유 인덱스(Unique Index): 중복 값을 허용하지 않는 인덱스입니다. 주로 유일한 값이 있는 열(예: 주민등록번호)에 생성됩니다.
      • 복합 인덱스(Composite Index): 두 개 이상의 열을 조합하여 생성되는 인덱스입니다. 여러 열에 대한 검색이 필요한 경우 유용합니다.
    • 활용: 데이터베이스의 성능을 향상시키기 위해 인덱스는 자주 검색되는 열에 생성됩니다. 그러나 인덱스가 많이 생성되면 데이터베이스의 쓰기 작업 속도가 느려질 수 있으므로 신중하게 선택해야 합니다.
  2. 뷰(View):
    • 개념: 뷰는 하나 이상의 테이블의 열에 대한 가상의 테이블로, 논리적인 데이터를 저장하지 않고 쿼리의 결과를 표시합니다. 즉, 뷰는 테이블과 동일한 방식으로 쿼리할 수 있지만, 실제 데이터는 뷰에 저장되지 않습니다.
    • 활용:
      • 데이터 보안: 뷰를 사용하여 사용자에게 필요한 데이터만 표시할 수 있습니다. 민감한 정보를 제외하거나 필요한 열만 선택하여 데이터를 제공할 수 있습니다.
      • 데이터 정리 및 가독성: 복잡한 쿼리를 단순화하고 데이터를 구조화하여 가독성을 높입니다. 여러 테이블을 조인하거나 집계된 데이터를 표시할 때 유용합니다.
      • 중복 코드 최소화: 뷰를 사용하여 자주 사용되는 쿼리 또는 비즈니스 규칙을 정의하고 중복 코드를 줄일 수 있습니다.
      • 데이터 변경 제어: 뷰를 통해 특정 데이터에 대한 변경을 제어하거나 복잡한 데이터 조작 작업을 단순화할 수 있습니다.

인덱스와 뷰는 데이터베이스의 성능을 향상시키고 데이터를 효율적으로 관리하는 데 중요한 역할을 합니다. 그러나 적절한 설계와 사용이 필요하며, 오용할 경우 성능 저하나 유지 보수의 어려움을 초래할 수 있습니다.

'sql' 카테고리의 다른 글

트랜잭션  (0) 2024.03.02
서브쿼리(Subquery)  (0) 2024.03.02
조인(JOIN)  (0) 2024.03.02
날짜 및 시간함수 : DATE0, TIMEO, TIMESTAMPO  (0) 2024.03.02
숫자함수 : SUMO, AVGO, COUNTO, MINO, MAXO  (0) 2024.03.02