하나의 쿼리에 대해 특별히 인덱스를 생성했지만 쿼리를 실행하는 데 5~6초가 걸리는 것으로 나타났습니다. 다음 쿼리를 사용하여 사용되지 않는 인덱스를 가져오려고 했더니 해당 인덱스가 사용되지 않은 인덱스 목록에 나열되어 있는 것을 확인했습니다. 다음 쿼리에 대해 더 나은 성능을 얻는 방법을 제안하십시오.
where 절 쿼리: WHERE parsedjobdescription IS NOT NULL AND is_updated != 0
색인: KEYidx_jobs_feed_parsedjobdescription_is_updated(
(
parsedjobdescription(700),
is_updated)
parsedjobdescription(700),
)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粉2327937652024-04-01 09:01:20
인덱싱된 두 열을 사용하지 말아야 할 세 가지:
IS NOT NULL - 범위에 도달하면 나머지 열은 사용되지 않습니다.
is_updated != 0 -- 이것도 "범위"입니다.
색인 접두사에 문제가 있습니다.
으아악테스트가 is_updated = 1
인 경우 색인을 뒤집거나 다른 색인을 추가할 수 있습니다.