arrow 若葉プログラミング塾 > 知識の玉手箱 > ワンポイントTips >

MySQL データ型

 MySQL Version5のデータ型

説明指定形式別名
tinyint 8bit整数。 tinyint(n) [unsigned] [zerofill]
smallint 16bit整数。 smallint(n) [unsigned] [zerofill]
mediumint 24bit整数。 mediumint(n) [unsigned] [zerofill]
int 32bit整数。 int(n) [unsigned] [zerofill] integer
bigint 64bit整数。 bigint(n) [unsigned] [zerofill]
decimal パック10進数。 decimal(n, d) [zerofill] dec,numeric
float 浮動小数点数。4または8バイト。 tinyint(n) [zerofill]
double 浮動小数点数。 double(n) [zerofill]
double precision 倍精度浮動小数点数。 double precision(n) [zerofill] real
char 固定長文字列型。 char(n) [binary]
varchar 可変長文字列型。 varchar(n) [binary]
tinytext 可変長文字列型。255バイト以下。 tinytext
text 可変長文字列型。65535バイト以下。 text
mediumtext 可変長文字列型。1677215バイト以下。 mediumtext
longtext 可変長文字列型。4294967295バイト以下。 longtext
date 日付型。 date
datetime 日付時刻型。 datetime
timestamp 日付時刻型n桁。 timestamp(n)
time 時刻型。 time
year 年。2または4桁。 year(n)
tinyblob 8bit整数。 tinyblob
blob 8bit整数。 blob
mediumblob 8bit整数。 mediumblob
longblob 8bit整数。 longblob
enum 列挙型。 enum('文字列1',文字列2'',...)
set 文字列セット型。 set('文字列1',文字列2'',...)

 MySQLのデータ型には大きくわけて2種類ある。上記の表でグリーンになっているものが可変長、 それ以外が固定長である。テーブルの設計時にレコードサイズを意識するのは当然だが、速度的には 固定長オンリーの方が速いかというと、実はそうでもない。 MySQLではテーブルにも「型」があり、作成時に最適な「型」を選んでくれるため、 可変長でも高速にアクセスできる場合が多いのだ。むしろ無駄な領域確保を減らすこと、 適切なインデックスを設定することを意識したほうが良いだろう。

MySQL データ型
arrow 若葉プログラミング塾 > 知識の玉手箱 > ワンポイントTips >
KC