-
MySql [ Like, Full Text Index ] 테스트공부하기/node.js 2023. 2. 24. 16:43
MySql 테이블 테스트 환경
- AWS RDS MYSQL db.t3.micro 클래스
- survey(설문지) 각 설문지는 5개의 Question(질문)을 갖는다.
- Question(질문지) 각 질문지는 4개의 Question_opt(선택지)를 갖는다.
- 설문지, 질문지, 선택지 각 테이블의 더미 데이터는 250만개~ 270만
- 설문지 찾기, 설문지 상세 두개 메서드를 테스트 진행
ERD
ERD 인덱스 적용 전 LIKE 검색
실행코드
select id, name, description from survey where name like "%Odio iure%" limit 10;
실행계획
5번 실행 결과 : 0.005, 0.004, 0.004, 0.004, 0.005 sec
인덱스 적용 후 LIKE 검색
적용 전과 실행계획, 실행 속도에서 차이가 없음
이유 : LIKE "keyword%"인 경우를 제외하곤 인덱스를 타지 않는다.
Full Text Index 검색
코드
SELECT id ,name, description FROM survey WHERE MATCH(name) AGAINST ('Odio iure' IN BOOLEAN MODE) LIMIT 10;
실행계획
5번 실행 결과: 0.001, 0.000, 0.000, 0.000, 0.000 sec
결과
단순 select의 경우 like 검색보다 full text index 검색이 성능이 압도적으로 좋은 결과를 얻었다.
'공부하기 > node.js' 카테고리의 다른 글
NestJs TypeOrm 엔티티 공통 컬럼 관리 (0) 2023.02.24 NestJs TypeOrm MySql Entity Name Error (0) 2023.02.24 nestjs, typeorm-extension을 사용한 seeding (0) 2023.02.22 4. NestJs & Hexagonal - [ 테스트 ] - 실패하는 테스트가 성공하도록 최소한으로 구현하기 (0) 2023.02.14 3. NestJs 설문조사 미니 프로젝트 - [ 테스트 ] - 실패하는 테스트 케이스 (0) 2023.02.14