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

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

DDD
DDD원래의
2024-10-31 02:10:02363검색

How Can I Speed Up a Slow

Where 절

로 "SELECT COUNT(*)..." 최적화

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

클러스터형 기본 키

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

최적화 전략

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

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

추가 제안

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

위 내용은 MySQL에서 WHERE 절을 사용하여 느린 \"SELECT COUNT(*)...\" 쿼리 속도를 어떻게 높일 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.