99클럽 코테 스터디 10일차 TIL DB Spatial Index
728x90
  • DB
    • Index
      • Index 작동 원리
      • Index 종류
        • B-Tree 인덱스
        • Hash Indexes
        • Bitmap Index
        • GIST(Generalized Search Tree)
        • R-Tree
        • Full Text Index
        • Spatial Index
        • Trie(Prefix Tree) Index
        • Covering Index
    • 영속성
    • 트랜잭션
    • ORM
    • ACID
    • N+1 문제
    • DB 정규화
    • Data Replication
    • sharding 전략
    • CAP 이론

란?

  • 공간 데이터를 효율적으로 저장하고 검색하기 위해 사용되는 데이터 구조

Spatial Index 유형

  1. R-Tree
    • MBR(Minimum Bounding Rectangle) 이라는 최소 경계 사각형을 사용하는 트리 구조임.
      각 노드는 MBR 을 포함하여, 자식 노드들은 이 MBR 내에 속하는 요소들을 나타냄.
    • 특징
      • 공간 객체가 겹치는 경우에도 효율적으로 검색할 수 있음. 범위 검색 및 근접성 검색에 적합함.
  2. Quadtree
    • 구조
      Quadtree 는 2차원 공간을 4개의 사분면으로 재귀적으로 분할하는 트리구조. 각 노드는 4개의 자식 노드를 가지며, 공간의 특정 영역을 나타냄.
    • 특징
      특정 위치에서의 데이터 밀도가 높은 경우에도 효율적으로 작동함. 주로 2차원 공간 데이터를 다룰 때 사용됨.
  3. Geohash
    • 구조
      • 지리 좌표를 문자열로 인코딩하는 방법.
      • 지구 표면을 그리드로 나누고, 각 그리드 셀에 고유한 해시 값을 부여함.
    • 특징
      • 문자열 비교를 통해 공간적 근접성을 빠르게 판단할 수 있음. 분산 데이터베이스에서 주로 사용됨.
  4. Grid Index
    • 구조
      • 공간을 고정된 크기의 그리드 셀로 나누고, 각 셀에 공간 객체를 매핑함.
    • 특징
      • 간단한 구현과 빠른 조회 속도를 제공함. 그러나 그리드 셀의 크기를 적절히 설정하는 것이 중요함.

활용

  1. 지리 정보 시스템(GIS)
    공간 데이터를 다루는 대표적인 분야로, 지도 서비스, 위치 기반 서비스, 도시 계획, 환경 모니터링 등에서 Spatial Index 를 활용함.
  2. 컴퓨터 그래픽
    3D 모델링, 충돌 감지, 시각화 등에서 공간 인덱싱 기법을 사용하여 효율성을 높임.
  3. 게임 개발
    게임 내에서의 객체 위치, 경로 탐색, 충돌 감지 등에 Spatial Index 를 활용함.
  4. DB
    공간 데이터를 효율적으로 저장하고 검색하는 기능을 제공하기 위해 RDBMS 와 NoSQL 데이터베이스에서 Spatial Index 를 지원함.

주요 기능

  1. 범위 검색
    • 특정 범위 내에 속하는 모든 객체를 찾음.
  2. 근접성 검색(Nearest Neighbor Query)
    • 특정 지점에서 가장 가까운 객체를 찾음.
  3. 교차 검색(Intersection Query)
    • 특정 영역과 교차하는 모든 객체를 찾음.
728x90