Updated: 2003-09-28 00:13:57 - [ Home | Wiki Home | Index | Changes ]
PostgreSQLの文字列型とテーブルのサイズの関係について。
カラムの型をvarchar(128)、varchar(1024)、textのそれぞれでテーブルを作成し、データベースが格納されているディレクトリのサイズをduで比較してみました。
結果、3種類のSQL文のどれでテーブルを作成した場合も、データベースのサイズは同じ(38039552 byte)になりました。マニュアルには、「空白でパッドされた型を使用した場合の保存領域の増加を別にして、これら 3 つの型の間でパフォーマンスに関する差異はありません」とあるので、textは文字数制限無しのvarcharであると考えていいのかもしれません。
実験は以下の手順で行いました。
テーブルの作成は以下の3種類で行いました。
create table test ( k text, v text); create table test ( k varchar(128), v text); create table test ( k varchar(1024), v text);
char(128)やchar(1024)で作成すると、当然サイズはずっと大きくなります。