인덱스란 정렬된 자료구조로 탐색 범위를 최적화 인덱스도 테이블이다 쿼리가 들어오면 인덱스를 조회한 후 찾은 곳으로 이동 인덱스의 자료구조 HashMap 단검 검색 속도 O(N) 범위 탐색은 O(N) 전방 일치 탐색이 불가능함 -> key를 하나하나 꺼내서 확인해야 하기에 List 정렬되지 않은 리스트의 탐색 O(N) 정렬된 리스트의 탐색 O(logN) 정렬되지 않은 리스트의 정렬 시간 복잡도는 O(N) ~ O(N*logN) 삽입/삭제 비용이 매우 높음 Tree 트리 높이에 따라 시간 복잡도가 결정 트리의 높이 최소화하는 것이 중요함 한쪽으로 노드가 치우치지 않도록 균형을 잡아주는 트리 사용 B+ Tree 삽입 삭제 시 항상 균형 하나의 노드가 여러 개의 자식 노드를 가질 수 있음 리프노드에만 데이터가 존..
PostgreSQL이란? 가장 많이 사용되는 객체 관계형 DBMS 안정성이 매우 높고 사용자 친화적인데 그 이유는 PostgreSQL의 주요 특징 때문이다! 사용자 정의 유형 테이블 상속 정교한 잠금 메커니즘 외래 키 참조 무결성 보기, 규칙, 하위 쿼리 중첩 트랜잭션(savepoints) 다중 버전 동시성 제어(MVCC) 비동기 복제기본 테이블 공간 특정 시점 복구 그 중에서도 multi-version concurrency control (MVCC)는 PostgreSQL에서 처음으로 구현된 기능인데 PostgreSQL은 확장이 가능하도록 설계되어 있기 때문에 데이터 타입, 인덱스 타입, 함수형 언어 등을 직접 정의할 수 있다. MVCC(다중 버전 동시성 제어)란? MVCC는 동시 접근을 허용하는 데이터..