PhpMyAdminを使用して新しいMySQLデータベースを作成するときに、照合順序を選択するオプションがあります(例:-default、armscii8、ascii、...、UTF-8)。私が知っているのはUTF-8です。これは常にHTMLソースコードで見られるためです。しかし、デフォルトの照合は何ですか?これらの選択の違いは何ですか?どれを使用すればよいですか?
照合は実際にはデフォルトではありません。最初の選択肢としてデフォルトの照合が提供されます。
私たちが話しているのは collation 、またはデータベースがテキストタイプで使用する文字セットです。デフォルトのオプションは通常、地域の設定に基づいているため、グローバル化を計画していない限り、通常はpeachy-keenです。
照合順序は、大文字と小文字の区別も決定します(つまり、「Big」==「big」ですか?CIの場合はそうです)。すべてのオプションについて MySQLリスト を確認してください。
照合順序は、文字列の照合と並べ替えを実行する方法をデータベースに通知します。文字セットと一致する必要があります。
UTF-8を使用する場合、照合順序はutf8_general_ciにする必要があります。これはUnicode順でソートされ(大文字と小文字は区別されません)、ほとんどの言語で機能します。また、ASCIIおよびLatin1の順序も保持します。
デフォルトの照合は通常、latin1です。
短い答え:MySqlとMariaDBで照合を処理するときは、常にutf8mb4
(具体的にはutf8mb4_unicode_ci
)を使用してください。
長い答え:
MySQLのutf8エンコーディングは、適切なUTF-8エンコーディングとは異なるため、扱いにくい名前が付けられています。データの損失やセキュリティの脆弱性につながる可能性がある、完全なUnicodeサポートは提供していません。
幸い、MySQL 5.5.3(2010年初頭にリリース)は、utf8mb4と呼ばれる新しいエンコーディングを導入しました。これは、適切なUTF-8にマップし、Unicodeを完全にサポートします。
ここで全文を読む: https://mathiasbynens.be/notes/mysql-utf8mb4
特定のutf8mb
を選択する場合は、utf8mb4_unicode_ci
を使用して、パフォーマンスの欠点を最小限に抑え、目立たないように常にソートを適切に処理します。詳細はこちら: tf8_general_ciとutf8_unicode_ciの違いは何ですか