mysql:14352
From: Kinoshita <Kinoshita <QZT05560@xxxxxxxxxx>>
Date: Wed, 23 Jan 2008 23:30:33 +0900
Subject: [mysql 14352] InnoDBテーブルのテーブルスペース容量計算
MySQL MLの皆様
木下と申します。
MySQLを用いたシステム構築を行っているのですが、
DBを置くディスク容量を正確に把握する必要に迫られています。
情報をお持ちの方おられたら教えていただけないでしょうか?
【質問】
MySQL4.0 の InnoDB テーブルのテーブルスペース容量計算は
どのように行うのでしょうか?
データ部に関して、各カラム型に必要な記憶容量からレコードサイズを
計算しましたが、実際にデータを入れると、show table status で見た
Data_length は、計算値よりもかなり大きくなります。
また、インデックス部に関して、容量計算方法がドキュメントに見当たらず、
どのように行うものでしょうか?
テストの詳細を以下に記します。
-------------ここから-------------
●環境
OS : RedHatEnterpriseLinux3.0 Update3
MySQL : 4.0.17
●内容
以下のようなテーブルを作成する
create table test (
column1 varchar(20) BINARY NOT NULL,
column2 varchar(16) NOT NULL,
column3 int NOT NULL,
column4 varchar(15) NOT NULL,
column5 int NOT NULL,
column6 int NOT NULL,
PRIMARY KEY ( column1, column2, column3, column4 )) type=InnoDB;
varcharのカラムが最大なデータを256万件登録
$ mysql testDB -e "LOAD DATA INFILE 'data.csv' INTO TABLE
test fields terminated by ',' lines terminated by '\n';"
レコードサイズは 21+17+4+16+4+4 = 66
容量は66 x 256万 = 168,960,000 と想定 …(A)
実際のshow table statusの結果
Rows Avg_row_length Data_length
2,544,922 98 251,658,240 …(B)
(A)に比べ(B)の値がかなり大きい。
--
S.Kinoshita
shige_chan@xxxxxxxxxx
-> 14352 2008-01-23 23:30 [Kinoshita <QZT05560@] InnoDBテーブルのテーブルスペース容量計算 14353 2008-01-24 12:39 ┗[Yasufumi Kinoshita <] 14356 2008-01-26 01:42 ┗[Kinoshita <QZT05560@] 14359 2008-01-31 00:07 ┗[IIDAYUICHI <y_iida@x]