콘텐츠로 이동

2024 03 13

2024-03-13

MySQL Duration/Fetch Time

참고: https://enterone.tistory.com/216 참고: https://stackoverflow.com/questions/9425134/mysql-duration-and-fetch-time

  • Duration Time
    • 쿼리를 실행하는 시간
    • SQL 쿼리 성능 최적화 타겟 대상
  • Fetch Time
    • 페치 된 결과를 전송하는데 걸리는 시간
    • 쿼리 실행과 관련 X
    • 네트워크 연결에 의존하기에 SQL 쿼리 디버깅/최적화 옵션의 고려대상 X
    • 느리다면, 네트워크 때문임

MySQL ngram boolean mode

참고: https://blog.naver.com/PostView.nhn?blogId=jjdo1994&logNo=222348191751

  • IN BOOLEAN MODE
    1. Full text index 만들기 : MySQL은 토크나이징을 통해 텍스트를 단어로 잘게 자르고, 인덱스와 해당 단어를 저장
    2. Tokenization : 토큰 만들 때, 불용어는 제한다
    3. N-grams : CJK 언어의 경우, 단어를 연속된 문자 시퀀스로 분할하는 N-gram 토큰화 사용
    4. 인덱스 저장 : 풀 텍스트 인덱스를 별도로 마련한 InnoDB 공간에 저장
    5. 검색 : 전체 텍스트 검색시, 해당 인덱스를 통해 행 검색
    6. Boolean Full-Text 검색 : 검색 구문의 단어를 Boolean으로 취급
      • 엔진은 논치규칙을 통해 AND, NOT, OR 등의 연산 사용가능
        • 등을 통해 와일드카드 일치도 가능
    7. 랭킹 : 검색 순위는 매겨지지 않음. 주어진 부울 쿼리 일치하는 모든 레코드 반환