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


157

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

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

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

답변:


147

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

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

나는 인용한다 :

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

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


1
@Jasper 최적화 기간 동안 테이블이 완전히 잠겨 있습니까 (읽기 / 쓰기가 불가능합니까)?
Pacerier

4
그 인용문은 어디서 유래 한 것입니까? Google에서 많은 결과를 찾고 있습니다.
이안 헌터

오버 헤드가 반복되는 원인을 어떻게 알 수 있습니까?
mahen3d

기술 용어에 관계없이 완벽하고 쉬운 예를 들어 주셔서 감사합니다.
shyammakwana.me

1
"정말 높음"으로 간주되는 것은 무엇입니까?
TV-C-15

87

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

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

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

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


7
mysql 문서 크기에 "테이블의 많은 부분을 삭제했거나 가변 길이 행을 가진 테이블을 많이 변경 한 경우 최적화 테이블을 사용해야합니다"라고 표시되어 있습니다. 이것은 내 경우에 감사합니다 :)
boclodoa

8

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


1

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

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.