web-dev-qa-db-ja.com

すべてのUnicode文字を受け入れるには、どのMySQL照合が最適ですか?

私たちの列は現在_latin1_swedish_ci_に照合されており、特殊なUnicode文字は明らかに取り除かれています。 _U+272A ✪_、_U+2764 ❤_などの文字を受け入れられるようにしたい( (このWikipediaの記事 )を参照)。_utf8_unicode_ci_に傾いています照合はこれらと他の文字を処理しますか?この列はインデックスではないので、速度は気にしません。

MySQLバージョン:5.5.28-1

21
HellaMad

collat​​ionはあなたの心配の中で最も少ないです、あなたが考える必要があるのは文字セットですカラム/テーブル/データベース用。照合順序(データがで比較されるルールおよびsorted)は、その当然の結果。

MySQLはいくつかのUnicode文字セットをサポートしています。utf8utf8mb4が最も興味深いものです。 utf8[〜#〜] bmp [〜#〜] のUnicode文字、つまりすべてのUnicodeのサブセットをサポートします。 MySQL 5.5.3以降で使用可能なutf8mb4は、allのUnicodeをサポートしています。

Unicodeエンコーディングのいずれかで使用されるcollat​​ionは、おそらくxxx_general_ciまたはxxx_unicode_ciです。前者は言語に依存しない一般的な並べ替えおよび比較アルゴリズムであり、後者はより完全なより完全な言語に依存しないアルゴリズムで、より多くのUnicode機能をサポートします(例: "ß"の処理)および「ss」と同等)、したがって、速度も遅くなります。

https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-sets.html を参照してください。

27
deceze