MySQL 物理設計

この記事では MySQL で データベースの物理設計を行う際に参照する資料をまとめています。この資料の情報は MySQL 5.6.4 以降に対応しています。

データ型

整数
Type Bytes Minimum Value Maximum Value
TINYINT 1 -128 127
TINYINT UNSIGNED 1 0 255
SMALLINT 2 -32,768 32,767
SMALLINT UNSIGNED 2 0 65,535
MEDIUMINT 3 -8,388,608 8,388,607
MEDIUMINT UNSIGNED 3 0 16,777,215
INT 4 -2,147,483,648 2,147,483,647
INT UNSIGNED 4 0 4,294,967,295
BIGINT 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807
BIGINT UNSIGNED 8 0 18,446,744,073,709,551,615
実数
Type Bytes Precision
FLOAT(p) 4(0<=p<=24), 8(25<=p<=53) 0-53
FLOAT 4 0-24
DOUBLE 8 24-53
DECIMAL *1
文字列、バイナリ
Type Max Size (Bytes)
CHAR 255
VARCHAR 255
BINARY 255
VARBINARY 255
TINYTEXT 255
TEXT 65,535
MEDIUMTEXT 16,777,215
LONGTEXT 4,294,967,295
TINYBLOB 255
BLOB 65,535
MEDIUMBLOB 16,777,215
LONGBLOB 4,294,967,295
  • DECIMAL カラムのための値は、4 バイトの中に 9 個の 10 進数をパックするバイナリフォーマットを使って格納されます。各値の整数部と端数部に対する格納要件は別々に決定されます。9 桁の倍ごとに 4 バイト、残りの桁には 4 バイトの一部の容量がそれぞれ必要です。

日付/時刻
Type Bytes データ範囲
DATE 3 ‘1000-01-01’ ~ ‘9999-12-31’
DATETIME 5-8 ‘1000-01-01 00:00:00’ ~ ‘9999-12-31 23:59:59’
TIMESTAMP 4-7 ‘1970-01-01 00:00:00’ ~ 2037 年
TIME 3-6 ‘-838:59:59’ ~ ‘838:59:59’
YEAR[ 2 | 4 ] 1 2桁: 1970 ~ 2069
4桁(デフォルト): 1901 ~ 2155、 0000

参考