[바미] 데이터 베이스 캐싱 전략
데이터베이스 캐싱 전략
요청을 빠르게 처리하기 위해 일부 데이터를 캐싱하여 재사용 할 수 있는 방법을 의미합니다.
Cache hit
찾으려는 데이터가 캐쉬에 저장되어 있어 데이터베이스를 거치지 하고 캐쉬에서 바로 데이터를 가져오는 형태.
Cache hit이 많이 발생할수록 데이터 베이스에 대한 부담이 줄어든다.
Cache-Asdie
일반 적인 형태의 캐쉬로 어플리케이션이 캐쉬업데이트 업데이트 담당.
캐쉬에 먼저 쿼리문을 보내고 캐쉬에 데이터가 없을시 데이터베이스에서 데이터를 가져온후 캐쉬에 데이터를 업데이트 한다
장점:
1. 데이터베이스 데이터 모델과 캐쉬의 데이터 모델이 다르게 저장 가능
2. 캐쉬 서버가 다운되도 데이터베이스에서 데이터를 가져올수있다.
3. Lazy Loading
단점:
1. 데이터와 캐쉬간의 데이터 불일치 발생 가능성. (Time to live 값을 설정하거나 캐쉬를 무효화하는 전략 수립 필요)
2. 어플리케이션이 캐쉬관리 담당
Read-Through (동기적 처리)
캐쉬에 데이터가 없으면 원본 데이터 소스에 접근해서 데이터를 가져오고 캐쉬에 저장
장점:
1. Lazy Loading
2. 어플리케이션이 캐쉬를 관리하지 않음
단점:
1. 최초로 데이터를 요청한 사람의 응답속도가 느림.
Write-Through (동기적 처리)
캐쉬가 데이터베이스와 어플리케이션 사이에 위치하고 있고 캐쉬에 데이터를 저장하고 데이터베이스 이어서 바로 저장.
Read through 전략과 같이 이용되면 Cache Hit 확률을 높일수 있다.
장점:
1. Write-Behind 보다 데이터 유실 위험 적음
단점
1. 캐쉬와 데이터베이스에 동시에 저장하기때문에 느린 쓰기 속도
Write-Behind (비동기적 처리)
캐쉬에만 데데이터를 저장하고, 데이터 소스에는 별도의로 주기적으로 저장하는 방식
장점:
1. Write-Through 보다 향상된 쓰기 속도
2. 데이터베이스에 대한 부담을 줄일
단점
1. Cache 가 다운되면 데이터 유실 위험
참조
https://ethank.tistory.com/entry/%EC%BA%90%EC%8B%B1-%EC%A0%84%EB%9E%B5