RDB보다 NOSQL이 빠른이유?

minisoo·2023년 3월 1일
1
post-thumbnail

서론을 이야기하자면...
다니고 있는 회사의 주(?)데이터인 차량위치좌표를 어떻게 저장하고 처리할 것 인지에 대한 고민이 컸었다. 기존에 위치좌표는 3초 또는 10초에 한번씩 RDB에 저장되고 있었고 그래서 인지 데이터베이스 서버비용이 만만치 않았다.
여러번의 회의와 고민을 거친 끝에 10초마다 한번씩 들어오는 좌표는 데이터의 정확성보다는 빠른조회와 추가가 중요하다는 판단을 했고, 그 결과 NOSQL의 종류 중 하나인 redis를 사용하기로 결정했다.
NOSQL은 왜 훨씬 빠를까?

✔️ RDB

  • 배열형태로 데이터 저장, 테이블에 데이터는 순서 없이 쌓임
  • 특정조건의 데이터를 찾으려면 테이블의 모든 데이터에 접근하여 비교하는 과정이 필요 => 때문에 index를 사용
  • index사용시 검색 성능은 향상되지만 insert, update, delete 발생 시 인덱스도 수정되기 때문에 성능은 저하됨
  • 인덱스를 어느 컬럼에 사용할지도 굉장히 중요함 => 자주 조회하여 수정빈도가 낮고 데이터 중복이 적은 컬럼을 선택해야 함

✔️ NOSQL

  • HashMap형태로 데이터 저장, key값으로 빠른 검색 가능
  • 데이터형식, 자료의 크기를 지정해 놓지 않아도 자유로운 추가가 가능함
  • 읽기 처리를 자주하지만 데이터를 자주 변경하지 않는 경우 사용하면 좋음
  • 높은 레벨의 트랜잭션이 지원되지 않는다 -> 데이터 중복에 의해 데이터의 일관성이 저하된다.

    결론...❕
    상황에 맞는 데이터베이스를 사용해야 한다!
    아직은 NOSQL보다는 RDB가 많이 사용되고 있으며 그 이유는 아마 데이터의 신뢰성 문제 때문일거라 생각한다. NOSQL이 자유롭다는 큰 장점이 있지만 그에 따른 단점들이 수반되기 때문에 RDBD의 장단점, NOSQL의 장단점에 대해 찾아보고 상황에 맞게 선택하면 좋을 듯 하다.

profile
코딩하는 돌멩이 👻

1개의 댓글

comment-user-thumbnail
2023년 4월 20일

정말 유익하네요!

답글 달기