質問: PostgreSQL9.1でWebシステムを開発しています。 このシステムのデータベースでは、VARCHARの文字数が2のべき乗になっています。 たとえば、ユーザが入力できる最大文字数が20文字の場合、データベースでは`VARCHAR(32)'としています。 これはどういった理由があるのでしょうか? アライメントを気にしてるのかと思いましたが、そもそもVARCHARは文字数によってサイズが変わるので、無意味だと思いました。 昔のバージョン、もしくは他のRDBMSでは意味があるのでしょうか?
回答: ご認識の通りで、性能上の意味はなく、昔からの慣習でそうしているのだと思います。VARCHAR(32)としていても、ヘッダなどがあるので、32バイト単位に配置されるわけではないですからね。 単に、「きりがいい」くらいの感覚でそうしているのだと思います。