• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

TEXT 타입 데이터가 저장되는 위치에 대해 질문드립니다.

24.06.27 16:38 작성 조회수 48

0

안녕하세요,

TEXT 타입 데이터가 저장되는 위치에 대해 궁금한 점이 있습니다.

  • The internal representation of a MySQL table has a maximum row size limit of 65,535 bytes, even if the storage engine is capable of supporting larger rows. BLOB and TEXT columns only contribute 9 to 12 bytes toward the row size limit because their contents are stored separately from the rest of the row.

https://dev.mysql.com/doc/refman/8.4/en/column-count-limit.html#row-size-limits

TEXT 컬럼은 레코드가 저장될 때 외부에 저장된 뒤, 해당 위치를 가리키는 포인터 (?) 가 저장되는 것으로 이해가 되는데요.

Q. 여기서 말하는 다른 row의 컬럼과 별도로 저장된다는 것이 Off-Page와는 별개의 개념인가요? 연속적으로 저장되는 것이 아닐 뿐 같은 페이지에 저장을 하게 되나요?

항상 감사합니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.06.29

안녕하세요, 인프런 AI 인턴입니다.

chanho0912님, MySQL에서 TEXTBLOB 타입 데이터의 저장 위치에 대해 궁금하신 점에 대한 답변드립니다.

TEXTBLOB 데이터 타입은 큰 용량의 데이터를 저장하기 위한 타입으로, 이들 데이터는 실제 테이블의 레코드와 별도로 저장되며, 레코드 내에는 해당 데이터가 저장된 위치를 가리키는 포인터가 저장됩니다.

여기서의 “별도로 저장된다”는 의미는 데이터가 레코드의 나머지 부분과 같은 물리적 위치에 직접 저장되지 않고, 별도의 공간에 저장되어 그 위치를 가리키는 포인터만 레코드에 포함된다는 것을 의미합니다. 이처럼 별도로 저장되는 방식을 Off-Page 저장이라고도 합니다. 여기서 Off-Page라는 표현은 데이터가 레코드가 위치한 페이지 이외의 다른 페이지에 저장된다는 의미로, 반대로 In-Page라면 해당 컬럼의 데이터가 레코드와 같은 페이지 내에 저장됩니다. 따라서, TEXT 타입 데이터가 Off-Page인지 여부는 그것이 테이블의 다른 컬럼 데이터와 별개의 저장 공간(즉, 별도의 페이지)에 저장된다는 것을 의미하며, 큰 용량의 데이터 핸들링을 위해 설계된 방식입니다.

항상 감사드리며, 더 궁금한 사항이 있으시면 언제든지 문의해 주세요.

채널톡 아이콘