ホームページ >データベース >mysql チュートリアル >MySQL 基本チュートリアル 4 - データ型のストレージ要件と正しい型の選択方法
1. カラムタイプのストレージ要件
MySQL でサポートされている各カラムタイプのストレージ要件がカテゴリ別にリストされています。
MyISAM テーブルの行の最大サイズは 65,534 バイトです。各 BLOB 列と TEXT 列は、そのうちの 5 ~ 9 バイトのみを占めます。
MyISAM テーブルに可変長の列タイプが含まれる場合、レコード形式も可変長になります。テーブルを作成するとき、MySQL は特定の条件下でカラムを可変長タイプから固定長タイプに、またはその逆に変更できます。
数値型のストレージ要件
列の型 | ストレージ要件 |
TINYINT | 1バイト |
SMALLINT | 2バイト |
MEDIUMINT | 3バイト |
INT、INTEGER | 4バイト |
BIGINT | 8バイト |
FLOAT(p) | if 0 <= p <= 25 の場合、24 は 4 バイトです<= p <= 53 は 8 バイト |
FLOAT | 4 バイト |
DOUBLE [PRECISION]、項目 REAL | 8 バイト |
DECIMAL(M) 、D )、NUMERIC(M,D) | 変数; 以下の説明を参照 |
BIT(M) | およそ(M+7)/8バイト |
D ECIMAL (そしてNUMERIC) のストレージ要件はバージョン固有です:
バイナリ形式を使用して、9 個の 10 進数 (10 ベース) を 4 バイトに圧縮し、DECIMAL 列の値を表します。各値の整数部と小数部の格納方法は個別に決定されます。 9 桁の各倍数には 4 バイトが必要で、「残りの」ビットには 4 バイトの一部が必要です。次の表は、ビットを超えるストレージ要件を示しています。
01 | 1 |
1 | 32 |
4 | 2 |
5 | 3 |
6 | 3 |
7 | 4 |
8 | 4 |
9 | 4 |
日付と時刻の型の記憶域要件 | |
列の型 | |
ストレージ要件 | |
日付 | 3バイト |
8バイト
4バイト | TIME3バイト | |||||||||||||||||||||||||||||||||||
1バイト | ||||||||||||||||||||||||||||||||||||
String型ストレージ要件 | ||||||||||||||||||||||||||||||||||||
列タイプ | ||||||||||||||||||||||||||||||||||||
ストレージ要件 | ||||||||||||||||||||||||||||||||||||
M | )
L | +1バイト、ここでL M | および0 M |||||||||||||||||||||||||||||||||||
L | +1バイト、ここでL M and 0 M | |||||||||||||||||||||||||||||||||||
TINYBLOB、TINYTEXT | L+1 文字セクション、そのうち L 8 | ブロブ、 TEXT|||||||||||||||||||||||||||||||||||
L+2バイト、うちL | 16MEDIUMBLOB、MEDIUM TEXT||||||||||||||||||||||||||||||||||||
L+3バイト、うちL | 24 LONGBLOB、LONGTEXTL+4バイト、うち||||||||||||||||||||||||||||||||||||
ENUM('value1','value2 | ',...)||||||||||||||||||||||||||||||||||||
SET('value1 ','value2',...) | 1, 2, 3,セットメンバーの数に応じて 4 バイトまたは 8 バイト (最大 64 メンバー)||||||||||||||||||||||||||||||||||||
その他の販売者タイプ | MySQL タイプ |
TINYINT | |
TINYINT | |
M) | VARCHAR(M) |
DECIMAL | |
DECIMAL | |
FLOAT | |
DOUBLE | |
TINYINT | |
SMALLINT | |
MEDIUMINT | |
INT | |
BIGINT | |
MEDIUMBLOB | |
MEDIUMTEXT | |
MEDIUMTEXT | |
MEDIUMINT | |
D ECIMAL |
tbl_name ステートメントを実行すると、MySQL は同等の MySQL タイプを使用してテーブルの構造をレポートします。例:
mysql> CREATE TABLE t (a BOOL, b FLOAT8, c LONG, d NUMERIC);Query OK, 0 rows affected (0.08 sec) mysql> DESCRIBE t;+-------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------+------+-----+---------+-------+ | a | tinyint(1) | YES | | NULL | | | b | double | YES | | NULL | | | c | mediumtext | YES | | NULL | | | d | decimal(10,0) | YES | | NULL | | +-------+---------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)上記は MySQL の基本チュートリアル 4 - データ型のストレージ要件と正しい型の選択方法です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。