찾다

 >  Q&A  >  본문

인덱스를 사용할 수 있지만 아직 사용되지 않음 - MySQL

하나의 쿼리에 대해 특별히 인덱스를 생성했지만 쿼리를 실행하는 데 5~6초가 걸리는 것으로 나타났습니다. 다음 쿼리를 사용하여 사용되지 않는 인덱스를 가져오려고 했더니 해당 인덱스가 사용되지 않은 인덱스 목록에 나열되어 있는 것을 확인했습니다. 다음 쿼리에 대해 더 나은 성능을 얻는 방법을 제안하십시오.

where 절 쿼리: WHERE parsedjobdescription IS NOT NULL AND is_updated != 0

색인: KEYidx_jobs_feed_parsedjobdescription_is_updated((parsedjobdescription(700),is_updated)parsedjobdescription(700),

is_updated)

SELECT * FROM sys.schema_unused_indexes;

사용되지 않은 인덱스: SELECT * FROM sys.schema_unused_indexes;

parsedjobdescription varchar(50000) DEFAULT NULL is_updated tinyint(1) DEFAULT '0'

열: 구문 분석된 작업 설명 varchar(50000) DEFAULT NULL is_updatedtinyint(1) DEFAULT '0'

쿼리 설명:

가능한 키: idx_jobs_feed_parsedjobdescription_is_updated, idx_is_updated

키: idx_jobs_feed_parsedjobdescription_is_updated

키 길이: 703

줄 수: 1

🎜필터: 50.0🎜
P粉668019339P粉668019339233일 전419

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

  • P粉232793765

    P粉2327937652024-04-01 09:01:20

    인덱싱된 두 열을 사용하지 말아야 할 세 가지:

    • IS NOT NULL - 범위에 도달하면 나머지 열은 사용되지 않습니다.

    • is_updated != 0 -- 이것도 "범위"입니다.

    • 색인 접두사에 문제가 있습니다.

      으아악

    테스트가 is_updated = 1인 경우 색인을 뒤집거나 다른 색인을 추가할 수 있습니다.

    으아악

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