database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Tutorials 20960 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 20960
테이블의 최대 크기를 4 G 이상으로 늘이는 방법
작성자
정재익(advance)
작성일
2004-02-03 15:26ⓒ
2004-02-03 15:28ⓜ
조회수
14,262

이글은 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에 작성한 댓글입니다.

게시판에서 "테이블의 최대 크기를 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에 작성한 댓글입니다.
이 댓글은 2004-05-24 20:13에 마지막으로 수정되었습니다. Edit

MySQL Administrator 프로그램에서,

 

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

 

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

 

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

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

avg row length = 1 * 1024 * 1024

rows = 100

이렇게 하시면 됩니다.

이지구님이 2005-01-31 11:13에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
21256웹, PHP3, MySQL 연동
정재익
2004-03-10
11915
21166MySQL 에서 그 달의 마지막 날을 구하는 query [1]
정재익
2004-02-27
10413
21155MySQL 3.x --> 4.x 로 버전업시 필요한 script
정재익
2004-02-25
13618
20960테이블의 최대 크기를 4 G 이상으로 늘이는 방법 [3]
정재익
2004-02-03
14262
20485[참고] 원격에서 접속시도시 mysql 대몬이 재시작하는 경우가 있군요
문태준
2003-11-24
10681
20259[MySQL] time out(wait_timeout) 계산과 설정 (김칠봉님)
문태준
2003-10-19
14061
18411MySQL 기능 최대한 이용하는 방법
정재익
2003-01-26
26344
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다