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);