1. 풀 테이블 스캔

    1. 테이블을 처음부터 끝까지 읽어서 쿼리를 처리하는 작업
    2. MySQL 옵티마이저가 주로 풀 테이블 스캔을 선택하는 조건
      1. 테이블의 레코드 건수가 너무 작아서 인덱스를 활용하지 않아도 되는 겨우
      2. 조건절에서 인덱스 사용 조건이 맞지 않는 경우(인덱스 컬럼 변형, 첫번째 인덱스 컬럼 생략)
      3. 인덱스를 활용할 수 있는 경우라도 레코드 손익 분기점을 넘긴 경우(전체 레코드의 20~25%를 넘는 경우 풀 테이블 스캔의 비용이 저럼)
    3. 풀 테이블 스캔을 하게 되면 디스크 I/O작업이 자주 일어나게 됨
    4. 위를 보완하고자 리드 어헤드 사용
  2. 리드 어헤드

    Untitled

    1. 데이터를 조회하는 경우 페이지 단위로 묶어서 읽어오게 됨
    2. 많은 데이터를 읽어서 특정 부분의 페이지를 지속적으로 읽어오는 경우 조회할 다음 페이지를 예측하여 미리 InnoDB의 버퍼에 적재
    3. 미리 적재하여 버퍼 풀에 적재된 데이터를 가져오기 때문에 속도가 빨라짐
    4. innodb_read_ahead_threshold 변수를 통해 지정한 개수 이상의 페이지를 조회하는 경우 리드 어헤드를 사용하도록 설정 가능