ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS : DB : 인덱스, 리플리케이션, 클러스터링
    Computer Science/DB 2021. 4. 1. 19:01
    728x90

    Index (인덱스)

     

    • 인덱스 : 테이블의 동작 속도를 높여주는 자료 구조
    • 테이블 내의 1개 이상의 컬럼을 이용하여 인덱스를 생성할 수 있다.
    • 사용 이유
      • WHERE절과 일치하는 열을 찾기 위해
      • join 시, 다른 테이블의 열을 추출하기 위해
      • min(), max() 값을 찾기 위해
      • 데이터 열을 참조하지 않는 상태로 값을 추출하기 위해서 쿼리를 최적화 하기 위해

     

    • DELETE, UPDATE 연산이 빈번하다면, 인덱스는 비효율적일 수 있다.
    • 위의 연산은 기존의 인덱스를 삭제하는 것이 아니라, '사용하지 않음' 처리하기 때문이다.

     

    • 인덱스의 자료구조
      • 해시 테이블
        1. Key와 Value로 데이터를 저장하는 자료구조
        2. O(1)로써 매우 빠르다.
        3. '=' 연산에 특화되어 있기 때문에, '<', '>' 연산과 같은 연속적 데이터를 위한 순차 검색이 불가능하다.
      •  B-Tree 구조
        1. B-Tree 구조의 개선형으로, 리프노드를 linkedlist로 연결하여 순차 검색이 가능하다.
        2. O(log2n)으로써, 해시 테이블보다는 느리지만, 더 많이 사용된다.

     


     

    Replication VS Clustering (리플리케이션 vs 클러스터링)

     

    • 리플리케이션
      • 여러 개의 DB를 권한에 따라 수직적인 구조로 구축하는 방식이다.
      • 여기서 수직적 구조란, 'Master - Slave' 구조이다.
      • 데이터 무결성 검사를 하지 않는 '비동기방식'으로 데이터를 동기화 한다.
      • 장점 : 비동기방식으로 동기화 되어 지연이 거의 없다.
      • 단점 : 노드들 간 데이터 무결성을 보장할 수 없다.

     

     

    • 클러스터링
      • 여러 개의 DB를 수평적인 구조로 구축하는 방식이다.
      • Single Point of Failure와 같은 문제를 해결할 수 있는 'Fail Over'한 시스템을 구축하는 방식이다.
      • '동기방식'으로 노드들 간 데이터를 동기화 한다.
      • 장점 : 무결성을 보장할 수 있다.
      • 단점 : 동기화로 인한 시간때문에, 리플리케이션에 비해, 쓰기 성능이 떨어진다.

     

    728x90

    'Computer Science > DB' 카테고리의 다른 글

    CS : DB : RDBMS vs NoSQL  (0) 2021.04.20
    CS : DB : Block vs Non-Block, Sync vs Async  (0) 2021.04.13
    CS : DB : paging, no offset, covering index  (0) 2021.04.13
    CS : DB : 트랜잭션과 격리 수준  (0) 2021.04.13
    Question : DB  (0) 2021.04.06

    댓글

kxmjhwn@gmail.com