- 헤더 시작마크(0x3000)
- actual length
- unused length
- flags + overflow pointer
actual length는 전 칼럼의 합계 바이트 수이다.
unused length는 자신의 레코드 끝에서부터 다음의 레코드의 처음까지의 사이에 있는 미사용부분 바이트 수이다. 여기에 0x00이 채워져있다.
actual length+unused length는 16진수로 자르기 좋은 수로 최소 16(10진수)가 된다.
overflow pointer는 레코드가 연속되지 않는 여러 부분에 기록되어 있는 경우에 나머지가 기록되어 있는 위치를 나타낸다.
헤더의 다음에는 각 컬럼의 값이 계속된다. varchar()의 경우에는 값의 바이트수가 추가되고 그 뒤에 실제의 값이 들어가게 된다.
MYD
mysql> create table dynamic(a varchar(3), b varchar(5) ) default charset=eucjpms;
mysql> insert into dynamic values( 'abc', 'def'),('ghi',NULL);
shell# hexdump -C dynamic.MYD
1레코드: 03 00 09 07 fc 03 62 62 63 03 64 65 66 00 00 00 00 00 00 00
2레코드: 03 00 06 0a fe 03 67 68 69 00 00 00 00 00 00 00 00 00 00 00