Database에 대한 이해와 검색

최창서·2022년 4월 9일
0
post-custom-banner

1. 검색을 이해하려면 다양한 DB를 알아야한다 Database

프론트에서는 간단하게 입력값에 search를 붙여서 보내주면 간단하지만,
백엔드에서는 find({title:%점심%}) 함수를 통해 데이터베이스 안에 정보를 찾아내서 프론트에 넘겨주게 된다.
데이터의 양이 방대한경우 컴퓨터는 한줄 한줄 읽어 내려가기 때문에(테이블 풀스캔) 위에 방법은 좋지 않은 방법이다.

이를 해결하기 위해 역색인(역인덱스) 방법을 사용한다. 다른 테이블 하나를 만들고 기존에 테이블에 있던 문자열에서 단어(토큰)들만 뽑아(토크나이징) index를 지정해 넣어준다.(구글 검색 엔진)

이렇게 테이블을 직접 만들어줘도 되지만 이것만을 위한 데이터베이스가 있는데 이를 ElasticSearch라고 부른다. 하지만 디스크기반 데이터이기 때문에 메모리기반(Redis,Memcached) 데이터베이스에 비해 저장하고 사용하는데 시간이 오래 걸린다. 그래서 사용자가 많아서 너무 자주 나오는 검색어들은 메모리에 저장(검색 로그 캐싱)해준다.

profile
프론트엔드 개발자
post-custom-banner

0개의 댓글