안녕하세요. 코미야입니다. 어느 날, 셰프 레시피를 수정할 때 동료가 이런 말을 했어요.
"phpmyadmin information_schema 링크를 클릭하는 순간
사이트가 무거워지고 디스크 공간이 수십 GB나 늘어났으며, 이제는 하락했다가 진정되었습니다.
무엇이 원인인지 아세요?"
phpmyadmin - K52에서 정보_schema 클릭하는 것은 너무 위험합니다. NIKKI 버전 3.0과 함께 사용되었습니다.
잘 이해하지 못해서 현상에 대해 중얼거렸고, MySQL ACE yoku0825가 innodb_stats_on_metadata=1이 모호할 수 있다고 알려주었습니다. 구글링을 해보니 innodb_stats_on_metadata - 타쿠미 사카모토의 블로그라는 페이지를 보고 무슨 일이 일어나고 있는지 알 것 같았습니다.
일어난 예측: ・테이블 업데이트 상태가 통계 업데이트 조건에 도달한 상태였다 ・정보 링크를 클릭하면_schema, 통계 상태 표시와 동등한 쿼리가 실행되었다 ・통계 정보를 업데이트하기 위해 ANALYZE_TABLE에 해당하는 처리 처리가 실행되었다 ·디스크가 넘쳐났다 왜냐하면 테이블 복사본이 tmpdir로 생성되었고, 프로세스가 완료되어 사용률이 감소했다 ·CPU 부하는 ALTER와 동등한 TABLE 유지보수 프로세스와 그에 연관된 디스크 I/O 때문으로 추정된다
한(Han) 블로그에서 innodb 통계 정보 업데이트 발생 조건에 대한 설명을 찾았습니다. 항상 감사합니다. 축하합니다. 이것만으로는 부족해서 조금 덧붙이겠습니다.
어떤 버전을 켜고 끄는 게 좋은지에 대해 공식 매뉴얼을 보면 5.6.6부터 OFF, 그 이전부터 켜는 것 같아요.
다음으로, innodb-stats-on-metadata를 0으로 설정하면 직접 유지보수를 해야 하는데, 어떻게 해야 할까요?
기본 유지보수와 통계 업데이트만 원한다면 ANALYZE TABLE을 사용하고, 조각 모음을 원한다면 ALTER TABLE을 사용하는 것이 좋습니다. InnoDB의 OPTIMIZE는 내부적으로만 ALTER를 실행하므로, READ로 잠기고 싶지 않다면 ALTER TABLE을 사용할 수 있습니다. 데이터(및 명세)가 가능한 한 프로덕션과 비슷한 테스트 환경에서 소요 시간을 추정하는 것이 권장됩니다. 매뉴얼 링크를 표에 붙여넣었습니다. 왼쪽은 5.1 일본어 링크이고, 오른쪽은 5.6 영어 링크입니다.
・참고 사이트 innodb_stats_on_metadata 조심하세요 - 사카모토 타쿠미의 블로그 ' 한의 컴퓨터 경로: 성인을 위한 InnoDB 테이블과 올바른 상호작용 방법'. 한의 컴퓨터 경로: 테이블 변경을 마스터하자. MySQL 문제 분석 테이블 유지보수 문 입문 MySQL :: MySQL 5.5 참고 매뉴얼 :: 13.7.2 테이블 유지보수 문장 Percona 툴킷 pt-online-schema-change | pt-online-schema-change - 전 세계적으로 안전하게 사용하기.
5.6 이후로 일부 ALTER TABLE이 온라인에 제공되었지만, 다음 사항들은 다음과 같이 유지하는 것이 더 나은 것 같습니다. 일일 메모: MySQL 5.6 온라인 ALTER TABLE을 시도했을 때, innodb_online_alter_log_max_size MySQL은 온라인 ALTER TABLE | GMO 미디어 엔지니어 블로그
MySQL을 사용하는 사람이 많고 익숙하니, 무슨 일이 생기더라도 많은 정보를 갖추는 것이 좋다고 생각합니다. 읽어주셔서 감사합니다.