[前][次][番号順一覧][スレッド一覧]

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]