Server/DB
Mysql) USE INDEX로 인덱싱하여 조회하기
Juzdalua
2022. 11. 14. 13:52
대용량 데이터를 처리하는 경우, 행이 많다면 쿼리타임이 늘어난다.
이를 해결하기 위해 테이블 구성시 인덱스를 만들 수 있다.
하지만 컬럼명 이외 다양한 인덱스를 활용할 수 있기 때문에 조회문에서 인덱싱을 사용하기도 한다.
서브쿼리를 사용하면 FROM절 이전에 실행된다.
다시 말하면, 서브쿼리에서 대용량 데이터 스키마를 검색한다면 해당 쿼리 전체를 읽기 전에 타임아웃이 발생할 수 있다.
서브쿼리에서 인덱싱을 사용한다면 이를 해소할 수 있다.
해당 테이블의 조건식에 따른 최대 출력 행 수를 확인한다.
Mysql에서 EXPLAIN 구문을 사용하면 해당 SELECT문의 row를 확인할 수 있다.
EXPLAIN
SELECT *
FROM Users;
I_AGE라는 인덱스를 구성했고 해당 쿼리문에서 이를 활용했다.
SELECT
name,
age
FROM
Users
USE INDEX (I_AGE);