2013-07-15 5 views
0

MyISAM이 물리적으로 레코드를 저장하는 방법을 이해하려고합니다. MyISAM 스토리지 엔진 가변 크기 레코드에는 각 레코드 다음에 사용되지 않는 데이터가 있습니다. 얼마나 많은 바이트가 사용되지 않은 데이터로 예약되어 있습니까? MyISAM이 사용하고있는 특정 알고리즘이 있습니까?mysql myisam 스토리지 엔진에서 사용하지 않는 데이터

편집 : 여기 다른 질문을해야합니다. 새로운 레코드가 삽입되면 다음 레코드가 나중에 사용되기 전에 그 레코드의 끝에 여유 공간이 다시 조사됩니까?

+0

좋은 대답이 링크를 참조 http://stackoverflow.com/questions/16711983/understanding-myisam-record-structure – Namphibian

+0

예 나는 그 대답을 읽을 수 있지만 그것은 엔진이 관리하는 방법에 대해 이야기하지 않습니다 각 레코드의 사용되지 않은 데이터 부분. –

+0

"사용하지 않은 데이터"는 레코드를 삭제하거나 더 짧은 값의 가변 길이 문자열을 업데이트 한 결과 발생합니다. – eggyal

답변

0

"예기치 않은 데이터는 레코드를 삭제하거나 더 짧은 값으로 가변 길이 문자열을 업데이트 한 결과 발생합니다".

데이터베이스를 "진공화"하지 않으면 레코드가 사용 가능한 공간보다 길더라도 각 새 레코드가 사용 가능한 공간을 차지하게됩니다. 레코드가 저장되는 방법에 따라 각 레코드마다 다른 blocktype이 있습니다.

레코드가 여유 공간보다 긴 경우 레코드가 완전히 쓰여질 때까지 그 공간을 모두 차지하고 다른 사용되지 않은 데이터를 "찾습니다".

사용되지 않은 데이터가 없으면 레코드가 끝에 기록됩니다.