어떤 이유로 mysqltuner를 실행할 때 MySQL 서버의 모든 InnoDB 테이블이 조각으로 나열됩니다. 몇 시간 전에 서버를 설치했으며 (OSX Lion에) 배치 파일에서 가져온 새로운 데이터가 많이 있습니다.
한 데이터베이스의 모든 테이블을 MYISAM으로 변환하려고 시도했으며 조각난 테이블 수가 충분히 줄었습니다. 이상하게도, 해당 테이블을 InnoDB로 다시 변환하자마자 조각난 테이블 수가 다시 백업되었습니다. 이것은 지금까지의 연구와 달리 실행 ALTER TABLE table_name ENGINE=INNODB;
이 조각화를 수정해야 함 을 시사합니다 .
약간의 인터넷 검색 후 나는 달렸다.
SELECT table_schema, table_name, data_free/1024/1024 AS data_free_MB
FROM information_schema.tables
WHERE engine LIKE 'InnoDB' AND data_free > 0
아마도 모든 조각난 테이블을 나열합니다 (실제로 조각난 테이블 수에 대한 mysqltuner 출력과 동일한 수의 결과를 반환합니다). 모든 단일 항목은 data_free_MB
열 에서 정확히 같은 숫자를 갖습니다 (현재 7.00000000).
이것은 실제로 실제 문제입니까, 아니면 mysqltuner가 잘못하고 있습니까? 문제가 있으면 어떻게 해결합니까?
편집하다
나는 바보이고 7MB 조각화는 각 테이블이 아니라 전체 파일에 대한 것임을 점점 더 의심하고 있습니다. 그럴 경우 누구나 확인할 수 있습니까?
[!!] Total fragmented tables: 2314
과 같습니다.. 문제가 있음을 확신합니다 (빨간색 느낌표가 있음)