"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL에서 WHERE 절을 사용하여 느린 \"SELECT COUNT(*)...\" 쿼리 속도를 어떻게 높일 수 있습니까?

MySQL에서 WHERE 절을 사용하여 느린 \"SELECT COUNT(*)...\" 쿼리 속도를 어떻게 높일 수 있습니까?

2024년 11월 12일에 게시됨
검색:191

How Can I Speed Up a Slow \

Where 절을 사용하여 "SELECT COUNT(*)..." 최적화

당면한 문제는 상당히 느린 "SELECT COUNT (*)" 쿼리는 MySQL에서 "WHERE" 절이 적용된 경우에도 발생합니다. 이 문제를 해결하려면 MySQL의 스토리지 메커니즘을 이해하는 것이 중요합니다.

클러스터형 기본 키

이 인스턴스에 사용된 스토리지 엔진인 InnoDB는 클러스터형 기본 키를 활용합니다. 즉, 기본 키는 별도의 인덱스 페이지가 아닌 동일한 데이터 페이지의 데이터 행과 함께 저장됩니다. 결과적으로 클러스터된 기본 키에 대해 범위 검색을 수행하려면 잠재적으로 넓은 열 값을 포함하여 모든 행을 검색해야 합니다. 문제의 테이블에 TEXT 열이 포함되어 있어 성능 문제가 더욱 악화됩니다.

최적화 전략

이 쿼리를 최적화하려면 다음 전략을 고려하세요.

  1. 테이블 최적화: "OPTIMIZE TABLE"을 실행하면 데이터 페이지가 물리적으로 정렬됩니다. 주문하다. 이 최적화는 잠재적으로 클러스터된 기본 키에 대한 범위 검색 성능을 향상시킬 수 있습니다.
  2. 추가 인덱스 생성: "change_event_id" 열에만 기본이 아닌 인덱스를 생성하는 것을 고려하세요. 이렇게 하면 인덱스 페이지에 해당 열의 복사본이 생성되며, 이는 클러스터된 기본 키에 비해 스캔 속도가 훨씬 빠릅니다. 인덱스를 생성한 후 계획 설명을 확인하여 활용도를 확인하세요.

추가 제안

성능을 더욱 향상하려면 "change_event_id" 열을 다음으로 수정하는 것이 좋습니다. 0부터 증가하면 "BIGINT UNSIGNED"가 됩니다. 이러한 변경으로 인해 저장소 요구 사항이 줄어들고 성능이 향상될 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3