2010-07-14 6 views
11

저는 최근에 커다란 프로젝트를 완전히 다시 작성했습니다. 그렇게하면서, 수많은 무작위 MySQL 쿼리를 통합했습니다. 앞의 코드베이스를 개발하는 과정에서 변덕에 대한 인덱스를 만들었고 더 이상 사용되지 않는 큰 숫자가 있음을 기억합니다.MySQL 데이터베이스에서 사용하지 않는 색인을 어떻게 식별합니까?

어떤 인덱스가 사용되고 있는지를 결정하기 위해 MySQL의 인덱스 사용을 모니터링하는 방법이 있습니까?

답변

14

이 정보는 MySQL 설치에서 사용할 수 없다고 생각합니다.

Percona는 MySQL 용 도구 및 패치를 만들어 인덱스 사용 데이터를 수집합니다.

참조 :도

참조 :

6,는 또한 중복 인덱스를 찾는 데 도움 MySQLIndexAnalyzer라는 자바 앱에 관심이있을 수 있습니다. 그러나이 도구는 어떤 색인이 사용되지 않았는지 전혀 알지 못합니다.

+1

+1 - Percona 패치도 권장합니다. 나는 그 (것)들에 접근이 없었기 때문에 모든 쿼리 실행을 기록한 다음이 테이블을 구문 분석하여 쿼리에 대해 EXPLAIN을 실행하고 어떤 인덱스/사용/사용을 계산했는지를 파악할 수 있었지만, 티/! –

+0

@Dave Rix : 상황에 맞는 멋진 해결책. 로그에 각 쿼리가 몇 번이나 나타나는지 파악한 경우 각 쿼리에 대해 EXPLAIN에서보고 한 인덱스에이 쿼리를 매핑 한 다음 자주 사용되는 인덱스와 자주 사용하지 않는 인덱스를 추정 할 수 있습니다. 사용되지만 거의 사용되지 않는 색인도 삭제 대상이 될 수 있습니다. –

+0

맞아요 - mysqlidxchx라고하는 오래된 도구가 있지만 주식 릴리스에서는 사용할 수 없습니다. 여기 내 게시물의 마지막 두 단락을 참조하십시오. http://www.mysqlperformanceblog.com/2009/10/16/how-not-to-find-unused-indexes/ –

관련 문제