未分類 > MySQLでレコード平均長を変更する
データベースでカラムの追加やデータ型の変更を行った場合など、レコードサイズに応じて変更が必要になる場合があります。
レコードサイズの計算を行う必要はなく、既にmysqlではレコード平均長が参照できる下記コマンドが用意されています。
mysqlコマンドラインで下記のコマンドを実行します。
show table status from database1 like 'table1';
database1データベースのtable1テーブルの場合。
「Avg_row_length」の値がレコード平均長になります。
レイアウトの関係で参照しづらい場合は、同様にmysqlコマンドラインから下記のスクリプトを実行してください。
データベース内に存在するテーブルすべてのデータを参照することができます。
予め「use データベース名」で対象のデータベースを選択しておく必要があります。
select table_name, engine, table_rows, avg_row_length, floor((data_length+index_length)) as all_Byte, #総容量 floor((data_length)) as data_Byte, #データ容量 floor((index_length)) as index_Byte #インデックス容量 from information_schema.tables where table_schema=database() order by (data_length+index_length) desc;
「avg_row_length」の値がレコード平均長になります。
下記コマンドでレコード長の平均値を変更します。
ALTER TABLE table1 MAX_ROWS=10000000, AVG_ROW_LENGTH=34016;
上はtable1テーブルのレコード長の平均値を「34016」に変更する例です。