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

InnoDBは文字列をどのように保存しますか?

    MySQLからドキュメント :

    CHARの違い およびVARCHAR 値は保存方法です。CHAR (10) データにはスペースが右に埋め込まれているため、使用する文字数に関係なく10バイトのストレージが必要です。VARCHAR (10) 1バイト(1バイトの文字セット)+長さのプレフィックス(長さが255以下の場合は1、それ以外の場合は2 ... EXPLAINのkey_lenの理由がわかりません 2バイト追加)

    末尾の空白の意味がわかりませんが、VARCHARで末尾のスペースの超過を参照していると想像できます。 CHARでは、これらは警告とともに切り捨てられます。 これらのスペースの列はサイレントに切り捨てられます。これには何らかの意味がありますCHAR 最後に末尾の空白を付けて保存されます。

    このリンク CHARの文字数がわかります またはVARCHAR 同じですが、ストレージには1文字あたり1〜4バイトが必要です。ここ サポートされている文字セットのリストであり、ここ 1文字あたりのバイト数。

    InnoDBのさまざまな行形式について読んだ内容

    冗長行フォーマットの特性

    COMPACT行フォーマットの特性




    1. SQLは2つのテーブルを1つのテーブルに結合します

    2. TOP n WITH TIESに相当するPostgreSQL:LIMIT with ties?

    3. mySQLで列名を動的に選択する方法

    4. MySQL(Windows10)MyISAMテーブルを使用した全文検索が機能しない