[NestJS] TypeORM에서 캐시를 너무 많이 쓰는 문제

전성훈·2022년 9월 2일
0

알고리즘

TypeORM에서 캐시를 남길 때, Relation으로 엮인 데이터들은
각 데이터들의 조합 개수만큼 중복되어 저장된다.

예를 들어, Relation으로 엮인 모델들이 총 3개 있고, 각 모델에 엔티티가 5개, 10개, 3개 있으면,
5 * 10 * 3 = 150. 즉 150개의 조합을 JSON으로 풀어 저장한다.

실제로 150개의 서로 비슷해보이는 Object가 캐시에 JSON으로 저장될 것이다.

대안

개인적인 추천은 TypeORM 내장 캐싱보다는, 별도의 캐싱 메커니즘을 구현해 사용하는 것을 추천한다.

예를 들어, 쿼리 조건을 Key로 하고, 쿼리 결과를 Value로 캐싱하기만 해도, TypeORM의 캐싱 알고리즘보다는 훨씬 적은 데이터량을 차지할 것이다.

0개의 댓글