sql >> データベース >  >> RDS >> Mysql

MySQLのchar/varchar / text / longtext列は、部分的に塗りつぶされたセルの場合でも、ファイルシステムでフルサイズを占めますか?

    http://dev.mysql.com /doc/refman/5.7/en/string-type-overview.html

    基本的に、CHARを除くこれらすべてのタイプ 可変長です。

    たとえば、VARCHAR(72)がある場合 abcdと書きます その中に、5バイトを格納します。文字ごとに4バイト、文字列の長さ(4)を格納するための1バイトのプレフィックス。

    文字列の長さが255文字を超える場合、VARCHARプレフィックスは2バイトになります。したがって、VARCHAR(300) 256文字の文字列が格納されていると、258バイトを使用します。

    TINYTEXT 保存できるのは255文字のみであるため、常に1バイトのプレフィックスがあります。abcd 5バイトかかります。

    TEXT 2バイトのプレフィックスがあるため、abcd 6バイトになります。

    LONGTEXT プレフィックスは4バイトなので、abcd 8バイトになります。

    最後に、ほとんど役に立たないCHARがあります タイプ。 CHAR(72) 何を格納しても、常に72バイトを使用します。これは、フィールドに常にまったく同じ数の文字が存在する超短フィールドでのみ実際に役立ちます。 Yのように またはN 良いCHAR(1) 候補者。




    1. テーブルへの挿入を無効にするメカニズムはありますか?

    2. get_headers()よりも速いもの

    3. MYSQL:同じテーブルを2回参照する同じクエリで2つのテーブルを結合する方法

    4. 別の選択内のMySql選択?