10 개의 테이블에서 데이터를 선택하기 위해 요청을 사용 중이고 어디에서나 WHERE 및 2 개의 조건이 있습니다 첫 번째 것은 간단하지만 두 번째는 빠르면 속도가 현저히 떨어집니다 결과가 반환되지 않았습니다. 내가 그것을 제거하면WHERE 필터로 인해 여러 테이블에서 MySQL 요청이 느려짐
AND (eligible_users.id IS NULL OR
((eligible_users.program = 3 AND eligible_users.status = 0)
OR eligible_users.status = 35))
, 페이지가로드가 훨씬 빨리, 더 빨리 만들하지만 여전히 내가 그것을 필요로하기 때문에이 필터를해야 할 몇 가지 방법이있다.
쿼리에 EXPLAIN을 실행 했습니까? 그것은 무엇을 말하는가? – jasonbar
아마도 "상태"열에 색인이 필요합니다. 다음과 같이 추가 할 수 있습니다 :'CREATE INDEX status_index ON eligible_users (status); ' –
또한 @jasonbar가 말한 것에서 두 번째로. EXPLAIN의 결과는 쿼리가 어떻게 평가되는지를 설명 할 것입니다. 그리고 어디서나 색인이 누락 되었다면 알려줄 것입니다. –