1. 개요
팀 프로젝트 중 데이터 베이스 선택과 효율적인 사용방법에 대해서 고민해보다가
캐싱과 인덱싱에 대해서 공부하여 작성해 보았다.
캐싱이란?
자주 접근하는 데이터를 메모리에 저장하여 메모리에서 검색하는 것이다.
메모리에서 검색하기 때문에 데이터베이스 서버의 부하를 감소시키고 응답시간 단축시킬 수 있다는 장점이 있다.
캐싱 시 고려할 사항은 무엇일까?
캐시 크기, 데이터 유효 기간 등을 고려해야 한다.
데이터베이스 캐싱을 위한 기술로는 인메모리 DB인 Redis가 있다.
Redis는 key-value로 데이터를 저장하며 대규모 데이터 처리 시스템에서 성능향상에 도움을 준다.
또한 다양한 자료 구조를 지원하여 데이터를 효율적으로 관리한다. (리스트, 세트, 해시 등)
MySQL과의 비교
MySQL은 디스크 기반의 관계형 데이터 베이스로 쿼리 캐시와 인덱스를 사용한다.
동일한 쿼리 요청이 있을 때 이전 실행된 결과를 사용하여 데이터 베이스의 부하를 줄인다.
버퍼 풀을 사용하여 자주 접근하는 데이터를 캐싱하고, 데이터 접근 속도를 빠르게 한다.
인덱싱이란
데이터의 검색 속도를 향상시키는 기술이다.
인덱스는 쿼리의 성능을 크게 향상 시킬 수 있으며 불필요한 인덱스는 성능저하가 발생할 수 있다.
때문에 데이터의 상태와 종류를 잘 생가갛여 인덱스를 적용해야 한다.
장점으로는 검색 속도가 증가한다는 장점이 있다.
단점은 인덱스 저장을 위한 추가적인 저장공간이 필요하고,
select이외 create,delete, update 시 성능저하가 발생하는 단점이 있다.
마무리
인메모리 DB는 사용해본적이 없기에 이번프로젝트를 하며
새로 공부해보고 도입해보고 싶다.