 |
이름: 해커즈뉴스
|
mysql 의 테이블 최대 사이즈는 ? 1. MYSQL 테이블의 최대크기는 얼마나 되나 ?
mysql 3.22 버전에서의 테이블 사이즈는 최대 4G 정도였다.
새로운 myisam table type 인 mysql-3.23 버전대부터는 최대 8 million terabytes 까지 지원하게되었다.
하지만, OS 에서 지원하는 파일사이즈에 한계가있으므로 모든 OS 에서 8 million terabyes 를 지원하지는 않는다.
아래는 OS 별로 지원하는 파일 사이즈의 한계이다.
========================================================================
OS File Size Limit
------------------------------------------------------------------------
Linux-intel 32 bit 2G,4G or more, 리눅스 버전에따라 달라진다.
Linux-Alpha 8T(?)
Solaris 2.5.1 2G(패치를하면 4G 까지 가능)
Solaris 2.6 4G (플래그변경이 가능하다)
Solaris 2.7 Intel 4G
Solaris 2.7 UltraSPARC 512G
========================================================================
mysql 의 테이블 사이즈는 OS 에따라 제한되어진다. 기본적으로 mysql 최대 테이블 사이즈는 4G 정도이다.
최대테이블 사이즈를 CHECK 하길 원한다면 "show table status" or "myisamchk -dv" 명령어를 사용하면된다.
mysql>show table status from [database name]
나온 항목중 Max_data_length 을 확인하면 해당 테이블의 최대 사이즈를 알수있다.
SYSTEM : RedHat-7.1
Kernel-2.4.9
Mysql-2.3.44 에서 나온 결과이다.
Name Type Row_format Rows Avg_row_lenght Data_length Max_data_length index_lenght .....
------------------------------------------------------------------------------------------------
test1 | MyISAM | Dynamic | 0 | 0 | 0 | 4294967295 | 1024
[root@soma]# myisamchk -dv /usr/local/mysql/var/soma/test
MyISAM file: /usr/local/mysql/var/soma/test1
Record format: Packed
Character set: euc_kr (19)
File-version: 1
Creation time: 2002-07-26 16:09:04
Status: checked,analyzed,optimized keys,sorted index pages
Auto increment key: 1 Last value: 0
Data records: 0 Deleted blocks: 0
Datafile parts: 0 Deleted data: 0
Datafile pointer (bytes): 4 Keyfile pointer (bytes): 4
Datafile length: 0 Keyfile length: 1024
Max datafile length: 4294967294 Max keyfile length: 4398046510079
Recordlength: 25
table description:
Key Start Len Index Type Rec/key Root Blocksize
1 1 4 unique long 1 1024
Max_data_length / Max datafile lenght 정보를 보면 4G 정도인것을 알수있다.
mysql 데이타베이스의 테이블들을 보면 1 terabytes 이상까지 지원되게끔 되어있음을 볼수있다
2. MYSQL 테이블 사이즈 변경하기.
mysql> create table test3 (
-> num int(10) not null,
-> name varchar(20) not null
-> )type=myisam
-> max_row=1000000000000
-> ;
위처러 max_row 인자를 사용해서 1tera 의 사이즈를 줬다.
테이블 생성후 확인하면 아래와 같이 변경된것을 볼수있다.
[root@angelsoma /etc]# myisamchk -dv /usr/local/mysql/var/soma/test11
MyISAM file: /usr/local/mysql/var/soma/test11
Record format: Packed
Character set: euc_kr (19)
File-version: 1
Creation time: 2002-07-26 19:16:37
Status: checked,analyzed,optimized keys,sorted index pages
Data records: 0 Deleted blocks: 0
Datafile parts: 0 Deleted data: 0
Datafile pointer (bytes): 5 Keyfile pointer (bytes): 3
Datafile length: 0 Keyfile length: 1024
Max datafile length: 1099511627774 Max keyfile length: 17179868159
Recordlength: 24
table description:
Key Start Len Index Type Rec/key Root Blocksize
|
|
 |