2017-03-01 3 views
-2

최근MySQL을 선택 쿼리 최적화

SELECT t1.id, t1.name, t1.date AS date_filter, 
     (SELECT t2.column_x 
     FROM table_2 t2 
     WHERE t2.date = date_filter LIMIT 1 
     ) AS column_x 
FROM table_1 t1 
WHERE t1.category_id = 10 
ORDER BY t1.date 
LIMIT 10; 

하위 쿼리는 첫 번째 테이블에서 날짜와 일치하는 두 번째 테이블에서 열 값을 반환, 우리의 사무실 토론 중 하나에 쿼리를 가로 질러왔다. 이 쿼리는 최적화 된 속도로 실행되지 않습니다. 성능을 즉석에서 처리하는 방법은 무엇입니까?

건배

그것은 두 테이블에 대한 SHOW CREATE TABLE을 가지고 도움이 될

답변

0

플러스 EXPLAIN SELECT ...

인덱스는 필요 :

t1: INDEX(category_id, date) 
t2: INDEX(date) 

하위 쿼리는 ORDER BY없이 이해가되지 않습니다 -하는 "1" 너 행 줄까?