質問: mysql-length()vs char_length() length()とchar_length()の主な違いは何ですか?バイナリ文字列と非バイナリ文字列に関係があると思います。文字列をバイナリとして保存する実用的な理由はありますか?mysql> select length('mysql'), char_length('mysql'); +-----------------+----------------------+ | length('mysql') | char_length('mysql') | +-----------------+----------------------+ | 5 | 5 | +-----------------+----------------------+ 1 row in set (0.01 sec)
回答: varchar(10)は10文字を格納しますが、これは10バイトを超える場合があります。インデックスでは、フィールドの最大長を割り当てます-したがって、utf8-mb4を使用している場合、10文字のフィールドに40バイトを割り当てます。