一部のデータ型では正しくありません。
DATETIME/TIMESTAMP
TIMESTAMP
とDATETIME
DATETIME
と比較した場合しかしTIMESTAMPは半分だけ記憶空間を使用し、類似しています。しかし、TIMESTAMP
を使うことには顕著な欠点があるので、公式の文書を調べて必要なものがどれかを調べるべきです。しかし、DATETIME
のほとんどがより良い選択になります。
あなたはこのデータ型の修正/可変長
NUMBERS
あなたは長さ、すなわちint(20)
を設定することにより、整数保存することができますが、保管の面で、それはノーを持って心配する必要はありません違いは無く、意味がありません。
TINYINT SMALL INT MEDIUMINT BIGINT
これらのデータ型は、それぞれ8、16、24、32、及び記憶空間の64ビットを必要とします。それぞれの最大値と最小値が異なります。値が特定の数値を超えないことが分かっている場合は、スペースを節約してパフォーマンスを向上させるために、最小のintデータ型を選択する必要があります。数字の詳細については、公式ドキュメントを参照してください。
FLOAT
およびDOUBLE
はおおよその計算であり、精度を指定する必要はありません。精度を設定し、仕様を超えて値を挿入すると、値が仕様に丸められます。もう一度公式文書を参照してください。
VARCHAR
VARCHAR
、あなたが期待するようには可変長ですが、覚えておいて、あなただけの5つの文字を必要とするとき、ディスク上に格納されたときに長さが可変であるがために、VARCHAR(100)
のようなものを指定しませんRAMで作業するときに指定する長さが必要なため、貴重なメモリを無駄にしてしまいます。
BLOBとTEXT
BLOB
とTEXT
は、使用するストレージエンジンによっては、特別な方法で保存されます。それらは通常、「外部」領域に格納されます。文字列がVERYの場合は、使用しないでください。このデータ型は、全長を索引付けすることはできず、メモリーによってもサポートされていないため、システムのメモリーでは使用されません。これを呼び出すと、MyISAMストレージエンジンを使用してディスク上に一時テーブルが作成され、パフォーマンスが大幅に低下します。
ENUM
これは非常にコンパクトであり、あなたがテーブルを作成するときは、フィールドに特定の値を設定します。文字列は固定されており、ENUM
列を変更するにはALTER TABLE
が必要です。したがって、修正/可変長を心配する必要はありません。
EDIT:
私はすべてのあなたの質問にData Type Storage Requirements
これに答える公式ドキュメントにページを発見...より良い私の質問を理解するための更新は非常に広範な問題 –
です。実際には、固定長データ型について私が知っているものが正しいかどうかを知りたいだけです。また、TIMESTAMP、ENUMは固定長または可変長のデータ型ですか? (合計2つの質問) –
タイムスタンプと列挙型は固定長タイプです。 – Karolis