0
특정 언어를 구사하는 교사를 찾고 유효한 위치에 미래의 가용성이 있거나 선생님의 기본 위치에 자리를 비울 필요가 없습니다. 여러 명의 교사가 같은 위치에있을 수 있습니다. 이 쿼리는 작동하지만 매우 느립니다. 어떤 색인을 사용해야합니까?이 느린 다중 쿼리에 어떤 인덱스를 추가해야합니까?
Select
teachers.teacher_id,
teacherLocations.location_id
From
tdb_teachers AS teachers
Join
tdb_teacher_languages As teacherLanguages
On teacherLanguages.teacher_id = teachers.teacher_id And
teacherLanguages.language_id = 33
Left Join
tdb_availability As locAvail
On locAvail.teacher_id = teachers.teacher_id And
locAvail.end_date >= 1381449600
Join
tdb_locations AS teacherLocations
On (
teacherLocations.location_id = locAvail.location_id Or
teacherLocations.location_id = teachers.location_id
) And
teacherLocations.latitude != "" And
teacherLocations.longitude != ""
인덱스가 조인 된 항목이나 where 절 (대부분의 경우) 내에있는 지 항상 확인해야합니다. – JonH
조인의 조건을 제거하고'WHERE' 절을 사용하십시오. – JonH
병목 현상을 알아 내기 위해 EXPLAIN을 시도 했습니까? –