면접에서 DB의 차이점을 물어봤는데 진짜 하나도 모르겠었다. 차이점을 생각도 해본 적도 없었다. 그래서 정리해 보기로 했다.
성능이 좋고, 기능이 많은데 비싸다.
그래서 나는 사용할 일이 없을 것 같다.
오픈 소스로 무료로 사용 가능하다.
Nested Loop Join
바깥 테이블의 처리 범위를 하나씩 접근하면서 추출된 값으로 안쪽 테이블을 조인하는 방식이다.
- 중첩 루프문과 동일한 원리
- 좁은 범위에 유리하다.
- 순차적으로 처리한다.
간단한 데이터 트랜잭션을 위한 데이터베이스가 필요한 웹 기반 프로젝트에 널리 사용된다. 로드가 많거나 복잡한 쿼리는 성능이 저하된다.
오픈 소스로 무료로 사용 가능하다.
sort merge join
조인의 대상범위가 넓을 경우 발생하는 Random Access를 줄이기 위한 경우나 연결고리에 마땅한 인덱스가 존재하지 않을 경우 해결하기 위한 조인 방안
양쪽 테이블의 처리범위를 각자 Access하여 정렬한 결과를 차례로 Scan하면서 연결고리의 조건으로 Merge하는 방식
hash join
해시값을 이용하여 테이블을 조인하는 방식
클러스터 : 디스크로부터 데이터를 읽어오는 시간을 줄이기 위해 자주 사용되는 테이블의 데이터를 디스크의 같은 위치에 저장시키는 방법
읽기, 쓰기 속도가 중요하고 데이터를 검증해야 하는 대규모 시스템에서 널리 사용된다.
빈번한 update 성격일 경우 성능, 불안정 하지만 insert 위주 성격일 경우에는 적합하다.
복잡한 쿼리를 실행해야하는 시스템에서 가장 잘 사용 된다.
동시성을 효율적으로 처리하여 매우 높은 수준의 동시성을 달성한다.
상황에 맞는 DB를 선택하면 된다.
간단한 동작을 구현하는 서비스는 MySQL
복잡한 쿼리를 요구하고, insert 위주의 대규모 서비스인 경우에는 PostgreSQL
하트 누르고가요 총총총🙋♂️