찾다

 >  Q&A  >  본문

쿼리의 두 값이 동일한지 확인하여 쿼리 속도를 매우 느리게 만듭니다.

내 목표:

쿼리하여 건물이 건설 중인 모든 지역을 제공합니다.

내 질문:

모든 건물을 동일한 건물과 비교하면(upgrade_id 비교) 쿼리가 영원히 계속됩니다. where 문의 마지막 부분이 없으면 1초가 걸리므로 완전히 괜찮습니다.

테이블 설정

지역은 수시로 변경되며 현재 타임스탬프와 함께 매일 저장됩니다. Province_has_building 테이블에는 지방에서 건물까지의 다대다 관계가 포함되어 있습니다. 각 건물에는 업그레이드 ID -> 건물 유형 및 상태가 있습니다.

쿼리

으아아아

설명

테이블 유형 가능한 키 참고 알았어 필터링됨 추가
하나 참고 메인, fk_province_game1_idx fk_province_game1_idx 상시 237387 100.00
a_pb 참고 메인, fk_building_has_province_province1_idx, fk_building_has_province_building1_idx fk_building_has_province_province1_idx testing.a.province_id 1 100.00 색인 사용
a_b eq_ref 초등학교, 중학교 메인 testing.a_pb.building_id 1 100.00
b_b 참고 초등학교, 중학교 중학교 test.a_b.upgrade_id 9 100.00
b_pb 참고 메인, fk_building_has_province_province1_idx, fk_building_has_province_building1_idx 메인 testing.b_b.building_id 1026 100.00 색인 사용
b 참고 메인 메인 testing.b_pb.province_id 1 5.00 사용장소

P粉511985082P粉511985082228일 전406

모든 응답(1)나는 대답할 것이다

  • P粉178132828

    P粉1781328282024-04-04 16:06:29

    일부 복합 인덱스 추가:

    으아아아

    province_has_building가 "다대다 매핑 테이블"인 경우 더 많은 가속 팁을 보려면 다대다를 참조하세요.

    자세한 논의를 원하시면 제공해주세요SHOW CREATE TABLE.

    복합 인덱스를 추가할 때 선행 열이 동일한 인덱스를 제거하세요. 즉, INDEX(a)와 INDEX(a,b)가 모두 있는 경우 전자를 삭제합니다.

    회신하다
    0
  • 취소회신하다