본문 바로가기
DataBase/MySQL

[본문스크랩] MySQL 최대 테이블 사이즈 변경

by 백룡화검 2010. 4. 24.

이 글은 database.sarang.net에서 가져온 글입니다.

 

 

정재익(advance)
작성일
2004-02-03 15:26:27ⓒ
2004-02-03 15:28:22ⓜ
조회수
4,893

이글은 QnA 란에 '왕초보'님께서 올린 글을 이곳으로 옮겨 둔 것입니다.

 

MySQL 에서 테이블을 만들다 보면 4 G 이상의 크기가 되면 (ERROR 1114 (HY000): The table 'TBSOJM00' is full ? ) 이런 류의 에러를 발생하게 됩니다. 이것은 테이블의 크기가 기본적으로 4GB 로 되어 있기 때문에 발생하는 오류입니다. 이것을 해결하기 위한 글입니다.

 

----

Mysql을 처음 사용하는 초보로써 마땅히 해결방법을 찾지 못하다가 도움을 주신분들을 통해 Menual을 찾아 그 문제를 해결하였습니다.

저 같이 초보되신 분들이 같은 문제로 고민할것 같아 정리해 보았습니다.

 

Error Code:

ERROR 1114 (HY000): The table 'TBSOJM00' is full

 

정리:

tbsojm00이라는 Table이 4GB로 제한된 Size에 때문에 table에 full이 난 상황이며, 이에 대한 해결방법입니다.

 

먼저, 해당Table에 대한 정보를 조회합니다.

mysql>환경에서 입력해야 합니다.

 

[Syntax]

 show table status from DataBase명 like 'Table명';

[예제]

DataBase명- korea, table명-seoul일 경우

show table status from korea like 'seoul';

 

조회된 결과에서

max_rows Column과 avg_row_length Column값을 변경하면 됩니다.

[Syntax]

alter table table명 max_rows=레코드수 avg_row_length=원하는테이블용량

[예제]

레코드수-1억건, 원하는테이블용량-60GB일 경우

alter table seoul max_rows=100000000 avg_row_length=60240000000;

 

[도움이 된 싸이트]

http://www.mysql.com/doc/en/Full_table.html

 

테스트 결과 현재 6GB를 넘겼습니다.

이 글에 대한 댓글이 총 3건 있습니다.

참고로 Windows 계열에서 FAT32 로 포맷팅되어 있는 경우 파일의 최대 크기가 filesystem 자체에서 4GB 로 한정되게 되어 있습니다. 그러므로 이런 경우는 파일 크기를 늘일 방법이 없습니다. filesystem 을 NTFS 로 변경하셔야 합니다.

정재익(advance)님이 2004-02-03 15:29:30에 작성한 댓글입니다.

게시판에서 "테이블최대 크기를 4 G 이상으로 늘이는 방법" 에 대해 2가지 의견이 있어, 그 의견중 어떤 것이 정확한 것인지 문의합니다.

 

<사용자가 원하는 테이블 조건>

   1. 레코드 수(MAX_ROWS) : 1억개의 튜플(레코드),

   2. 테이블의 크기 : 100G 라고 가정했을때,

다음 1)과 2) 중 어느 것이 정확한 건지 아시는 분 있으면 꼭 답변 부탁드립니다

(편의상 1KB = 1000Byte 으로 계산).

 

1) 테이블 크기= max_rows * avg_row_length

 

    100,000,000,000 Byte = 100,000,000 레코드 * avg_row_length

  => avg_row_length = 1000 Byte , max_rows = 100,000,000 레코드

 

2) avg_row_length : 원하는 데이블 용량,

    max_rows : 레코드 수

 

  => avg_row_length = 100 GB = 100,000,000,000 Byte,

  =>  max_rows = 1억 튜플 = 100,000,000 레코드

 

위의 2 가지 중에서 어떤 것이 맞는 건지 꼬오옥 좀 답변 바랩니데이...

그럼 이만 욕보쇼이...

궁금이님이 2004-05-14 21:29:56에 작성한 댓글입니다.
이 댓글은 2004-05-24 20:13:39에 마지막으로 수정되었습니다. Edit

MySQL Administrator 프로그램에서,

 

Catalogs 메뉴를 클릭하고 좌측의 테이블 목록에서 해당 테이블을 선택하세요.

 

하단의 Details>> 를 누른후 Row Status를 보시면 현재 테이블의 정보가 보입니다.

 

즉, Avg row length * Rows가 테이블의 용량이 되는 것입니다.

만약 1MB의 이미지 데이터가 100개 있는 경우에는

avg row length = 1 * 1024 * 1024

rows = 100

이렇게 하시면 됩니다.