MyISAMでは、固定幅のレコードを作成することにはいくつかの利点があります。 VARCHARは可変幅です。 CHARは固定幅です。行に固定幅のデータ型しかない場合、行全体が固定幅になり、MySQLは、そのテーブルの行のスペース要件とオフセットを計算するという利点があります。とは言うものの、利点は小さいかもしれず、VARCHARがよりコンパクトに格納する固定幅のパディングされたCHAR列を持つことによる他のコスト(キャッシュ効率など)を上回る可能性のある小さな利益はほとんど価値がありません。
より効率的になるブレークポイントはアプリケーションによって異なります。これは、両方のソリューションをテストし、アプリケーションの使用状況でデータに最適なソリューションを使用する場合を除いて、答えることができるものではありません。
INT(7)とINT(11)に関しては、これはストレージやパフォーマンスとは無関係です。 INT型に対するMySQLの引数がデータのサイズと関係があるというのはよくある誤解ですが、そうではありません。 MySQLのINTデータ型は常に32ビットです。括弧内の引数は、ZEROFILLで値を表示する場合にパディングする桁数を示します。例えば。 INT(7)は0001234を表示し、INT(11)は00000001234を表示します。ただし、このパディングは値が表示されたときにのみ発生し、ストレージや数学の計算中は発生しません。