[mysql] MySQL에서 “오버 헤드”는 무엇을 의미하며, 그에 대한 나쁜 점과 해결 방법은 무엇입니까?

간단한 질문이지만, 잠시 동안 저를 잔소리했습니다 ….

MySQL에서 “오버 헤드”란 무엇이며 걱정해야합니까?

‘테이블 최적화’를 클릭하면 실제로 수정됩니까?



답변

오버 헤드는 데이터베이스가 일부 쿼리를 실행하는 데 사용 된 임시 디스크 공간 인 것처럼 보이므로 이것이 실제로 높아질 경우에만 걱정해야합니다.

‘테이블 최적화’와 하드 드라이브 조각 모음을 비교할 수 있습니다.

나는 인용한다 :

모든 데이터베이스는 시간이 지남에 따라 최적의 성능 수준 을 유지하기 위해 어떤 형태의 유지 관리가 필요 합니다. 삭제 된 행 제거, 순서 변경, 압축, 인덱스 경로 관리, 조각 모음 등은 mysql에서 OPTIMIZATION으로, 다른 데이터베이스에서 다른 용어로 알려져 있습니다. 예를 들어, IBM DB2 / 400은이를 REORGANIZE PHYSICAL FILE MEMBER라고합니다.

자동차의 오일을 바꾸거나 튜닝을하는 것과 같습니다. 당신은 당신이 정말로 필요하지 않다고 생각할 수도 있지만, 그렇게함으로써 자동차가 훨씬 더 잘 달리고, 더 많은 가스 주행 거리를 얻을 수 있습니다. 사용량이 많은 데이터베이스도 동일해야합니다. 많은 UPDATE 및 / 또는 DELETE 작업을 수행하고 특히 테이블에 가변 길이 열 (VARCHAR, TEXT 등)이있는 경우 계속 조정해야합니다.


답변

phpMyAdmin호출 하는 것에 대해 이야기 overhead하는 경우 백업에서 복원했을 때와 동일한 동일한 데이터 파일의 이상적인 크기를 기준으로 테이블 데이터 파일의 실제 크기입니다.

성능상의 이유로 MySQL행을 삭제하거나 업데이트 한 후 데이터 파일을 압축하지 마십시오.

이는 overhead테이블 스캔에 좋지 않습니다. 즉, 모든 테이블 값에서 쿼리를 실행해야하는 경우 더 많은 빈 공간을 찾아야합니다.

테이블과 인덱스를 압축 하는 overhead을 실행 하여 제거 할 수 있습니다 OPTIMIZE TABLE.


답변

오버 헤드는 테이블의 Data_free 입니다. 즉 할당되었지만 사용되지 않은 바이트 수입니다.
SQL 명령 SHOW TABLE STATUS로 찾을 수 있습니다 . 테이블에 할당 된 크기의 여유 공간입니다.


답변

최적화 테이블은 매우 문제가 될 수 있습니다. 예를 들어 테이블이 사이트에서 많이 사용되는 경우입니다.

http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

MyISAM 또는 ARCHIVE 테이블의 많은 부분을 삭제하거나 가변 길이 행 (VARCHAR, VARBINARY, BLOB 또는 TEXT 컬럼이있는 테이블)이있는 MyISAM 또는 ARCHIVE 테이블을 많이 변경 한 후 삭제 된 행은 연결된 목록에서 유지 관리되며 후속 INSERT 작업은 이전 행 위치를 재사용합니다. <

이 동작을 확인했다고 생각합니다. 그리고 그것은 실제로 매우 유용 할 것입니다.


답변