MySQLにサポートされているデータタイプが必要とする記憶容量がカテゴリごとにリストされています。
      MyISAM
      テーブル内の行の最大サイズは65,534バイトです。BLOB
      と TEXT
      カラムはそれぞれ、このサイズに対してたった5から9バイトを占めています。
    
      重要NDBCluster
      ストレージエンジンを利用しているテーブルには、必要とする記憶容量を計算する際考慮するべき
      4-byteアラインメント
      の要因があります。これは、全ての
      NDB
      データ格納が4バイトの倍数単位で行われるという意味になります。それ故、—テーブルの中で
      NDB
      以外のストレージエンジンを利用している
      —カラム値は、格納に15バイトを利用し、NDB
      テーブルの中で16バイトを必要とします。この要求は、このセクションで紹介される他の全ての条件に当てはまります。例えば、NDBCluster
      テーブルの中で、
      TINYINT、SMALLINT、MEDIUMINT、そして
      INTEGER
      (INT)カラムタイプはそれぞれ1つのレコードにつき4バイトを必要とします。
    
      さらに、クラスタテーブルが必要とする記憶容量を計算する時、NDBCluster
      ストレージエンジンを利用する全てのテーブルがプライマリキーを要求する事を覚えておく必要があります。もしプライマリキーがユーザによって定義されない時は、NDB
      によって 「隠れ」
      プライマリキーが作成されます。この隠れプライマリキーは1つのテーブルレコードに付き31から35バイトを消費します。
    
      クラスタメモリ要求を計算する時には、MySQLForge
      で有効な ndb_size.pl
      ユーティリティが便利です。このPerlスクリプトは現在のMySQL(非クラスタ)データベースに接続し、そのデータベースが
      NDBCluster
      ストレージエンジンを利用するとどれくらいの容量を必要とするかについてのレポートを作成します。
    
数値タイプが必要とする記憶容量
| データタイプ | 要求ストレージ | 
TINYINT | 
1バイト | 
SMALLINT | 
2バイト | 
MEDIUMINT | 
3バイト | 
INT, INTEGER
 | 
4バイト | 
BIGINT | 
8バイト | 
FLOAT( | 
4 bytes if 0 <= p <= 24, 8 bytes if 25
              <= p <= 53 | 
FLOAT | 
4バイト | 
DOUBLE [PRECISION], REAL
 | 
8 バイト | 
DECIMAL(,
              NUMERIC(
 | 
変動; 後の説明を参照 | 
BIT( | 
約(M+7)/8 バイト | 
      DECIMAL (とNUMERIC
      )カラムの値は、少数第9位(10基準)の桁を4バイトにパックするバイナリフォーマットを利用して表現されます。各値の整数部と端数部の格納は別々に決定されます。9桁の倍ごとに4バイト、「余りの」
      桁には4バイトの端数容量がそれぞれ必要です。余りの桁に必要なストレージ要求を以下のテーブルで紹介します。
    
| 余り桁数 | バイト数 | 
| 0 | 0 | 
| 1 | 1 | 
| 2 | 1 | 
| 3 | 2 | 
| 4 | 2 | 
| 5 | 3 | 
| 6 | 3 | 
| 7 | 4 | 
| 8 | 4 | 
データと時刻タイプが必要とする記憶容量
| データタイプ | 記憶容量 | 
DATE | 
3バイト | 
DATETIME | 
8バイト | 
TIMESTAMP | 
4バイト | 
TIME | 
3バイト | 
YEAR | 
1バイト | 
文字列タイプの記憶容量
| データタイプ | 記憶容量 | 
CHAR( | 
 バイト、0
              <=  255 | 
VARCHAR( | 
L + 1 バイト、 一方で
               そして 0
              <=  255 (下のメモを参照)
              または
              L + 2 バイト、一方で
               そして 256
              <=  65535 (下のメモを参照). | 
BINARY( | 
 バイト、0
              <=  255 | 
VARBINARY( | 
L + 1 バイト 一方で
               そして 0
              <=  255 (下のメモを参照)
              または
              L + 2 バイト、 一方で
               そして 256
              <=  65535 (下のメモを参照). | 
TINYBLOB, TINYTEXT
 | 
L+1 バイト、一方で
              L <
              28
 | 
BLOB, TEXT
 | 
L+2 バイト 一方で
              L <
              216
 | 
MEDIUMBLOB, MEDIUMTEXT
 | 
L+3 バイト、一方で
              L <
              224
 | 
LONGBLOB, LONGTEXT
 | 
L+4 バイト、一方で
              L <
              232
 | 
ENUM(' | 
列挙値により1か2バイト(最高65,535値) | 
SET(' | 
セットメンバの数により、1、2、3、4、または8バイト(最高64メンバ) | 
      CHAR、VARCHAR、そして
      TEXT
      タイプでは、先行テーブルの中の
      L と M
      の値は文字数として解釈される必要があり、そしてカラム仕様の中のこれらのタイプの長さは文字数を表します。例えば、TINYTEXT
      値を格納するには、L
      文字に加え1バイトが必要です。
    
      VARCHAR、VARBINARY、そして
      BLOB と TEXT
      タイプは可変長タイプです。それぞれが必要とする記憶容量はこれらの要因によって決まります。
    
カラム値の実長さ
カラムの可能最大長さ
カラムに使用される文字セット
      例えば、VARCHAR(10)
      カラムは最大長さ10の文字列を保持する事ができます。カラムが
      latin1
      文字セットを利用すると仮定すると(一文字につき1バイト)、実際の記憶容量は文字列の長さ(L)と、その文字列の長さを記録する1バイトです。'abcd'
      文字列では、L
      は4で、必要とする記憶容量は5バイトです。もし同じカラムが代わりに
      VARCHAR(500)
      として宣言されていたら、その文字列
      'abcd' は 4 + 2 = 6
      バイトを必要とします。カラム長は255以上なので、プリフィックスには1バイトではなく2バイトが要求されます。
    
      特定の
      CHAR、VARCHAR、または
      TEXT
      カラム値を格納するのに利用される
      バイト
      数を計算するには、そのカラムに利用される文字セットを考慮に入れなければいけません。特に、utf8
      ユニコード文字セットを利用する時には、全ての
      utf8
      文字セットが同じバイト数を利用するわけではないという事を覚えておく必要があります。utf8
      文字の異なるカテゴリに利用される格納についての概要は、項9.7. 「Unicodeのサポート」
      を参照してください。
    
      注:VARCHAR
      や VARBINARY カラムの
      有効 最大長は65,532です。
    
      MySQL 5.1の NDBCLUSTER
      ストレージエンジン
      は可変幅カラムをサポートします。これは、そのような値が4バイトにそろっている場合以外は、MySQLクラスタテーブルの
      VARCHAR
      カラムが、他のストレージエンジンを利用した時と同じ容量を必要とするという意味になります。それ故、latin1
      文字セットを利用する VARCHAR(50)
      カラムに格納された 'abcd'
      文字列は8バイトを必要とします。(MyISAM
      テーブルの中の同じカラム値に必要とされる6バイトではない)これは、VARCHAR(50)
      カラムが、格納された文字列の長さに関わらず、1つのレコードにつき52バイトを必要としていた、NDBCLUSTER
      の初期バージョンからの変更点を表しています。
    
      BLOB と TEXT
      タイプは、そのタイプの最大長さにより、カラム値の長さを記録する為に1、2、3、またはバイトを必要とします。項10.4.3. 「BLOBとTEXT タイプ」を参照してください。
    
      TEXT と BLOB
      カラムは、TEXT
      カラム内のそれぞれの行が二つの部分で構成される、NDBクラスタストレージエンジンの中で異なる方法で実行されます。そのうちの1つは固定サイズ(256バイト)で、実際に元のテーブルに格納されます。それ以外の物は、隠れテーブルに格納された256バイト以上のデータで構成されます。この二つ目のテーブルの行は常に2,000バイトの長さです。もし
      サイズ <= 256
      (サイズ
      が行のサイズを表している)時、TEXT
      カラムのサイズは256で、そうでない時のサイズは256
      + サイズ + (2000 –
      (サイズ – 256) %
      2000)です。
    
      ENUM
      オブジェクトのサイズは異なる列挙値の数によって決定します。1バイトは、最大255の値を持つ列挙に使用されます。2バイトは、256から65,535の間の値を持つ列挙に使用されます。項10.4.4. 「ENUM タイプ」を参照してください。
    
      SET
      オブジェクトのサイズは異なるセットメンバの数によって決定します。もしセットサイズがN
      なら、オブジェクトは1、2、3、4、または8バイトに丸められた
      (
      バイトをコピーします。N+7)/8SET
      は最高64メンバを持つ事ができます。項10.4.5. 「SET タイプ」を参照してください。
    
