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]