[ DB ] Redis를 활용한 캐싱 ( with UpStash )
·
DB
캐시 레이어데이터를 찾는다고 하면 대부분은 DB에서 조회하게 됩니다.하지만 동일한 데이터에 대해 반복적인 읽기를 요청할 경우 DB에 부하를 주는 문제가 발생합니다.그렇다면 데이터를 미리 기억하고 빠르게 데이터에 접근할 수 있다면 성능을 높일 수 있지 않을까요?이렇게 데이터베이스에 접근하지 않고 빠른 접근이 가능한 저장소를 캐시 레이어라고 합니다. 캐시 종류카페인 캐시 : 애플리케이션 프로세스 내부 메모리에 데이터를 저장하는 라이브러리Redis : 애플리케이션 외부의 별도 서버에 데이터를 저장하는 메모리 기반 저장소AWS 엘라스틱 캐시 : AWS에서 제공하는 관리형 캐시 서비스로 AWS가 대신 운영, 백업을 해주는 서비스 UpStach캐시 데이터를 여러 서버에서 접근해야 한다면 외부 캐시 (Redis, ..
[ MySQL ] FullText Index
·
DB
📌 주의: 해당 글은 잘못된 내용이 포함 되어 있을 수 있습니다.혹시 잘못된 내용을 발견 하신다면 댓글로 알려주시면 감사 합니다! 배경일반적으로 검색을 사용할 때 LIKE '%검색어%' 를 사용 하게 됩니다.하지만 와일드카드를 검색어 앞에 사용하면 인덱스를 타지 못하는 문제가 발생합니다.이를 해결 하기 위해서 MySQL은 전문 검색 인덱스인 FullText Index를 지원합니다. 적용 방법MySQL 설정 파일인 My.ini 파일 [ mysql ] 영역에 밑 내용을 적용합니다.파일을 찾기 어렵다면 my.ini 찾는 방법을 참고 하시면 좋을 것 같습니다.ngram_token_size=2;ft_stopword_file=' ' n-gram 알고리즘이란 공백 기준으로 단어를 분리하고 n 길이씩 토큰으로 만드..
[ DB ] 인덱스를 통한 성능 개선
·
DB
📌 주의: 해당 글은 잘못된 내용이 포함 되어 있을 수 있습니다.혹시 잘못된 내용을 발견 하신다면 댓글로 알려주시면 감사 합니다! 🌱 [ 배경 ]스터디 관리 플랫폼 Wibby 메인 페이지는 스터디 모집글 검색이 있습니다. ( Wibby )카테고리, 진행 방식, 검색어를 사용 하여 모집글을 검색할 수 있습니다.만약 모집글의 데이터가 많아 진다면 어떻게 될까요?🌱 [ 더미 데이터 생성 ]어플리케이션 빈 생성 및 의존성 주입 완료 후 CommandLineRunner 실행모집글 백만개 생성@Slf4j@RequiredArgsConstructor@Componentpublic class SearchLoader implements CommandLineRunner { private static final in..