この場合、選ばれた照合は重要ですか?
質問
私はタイプのフィールドを持っています char(1)
私のmysqlテーブルでは、基本的に値mまたはfのみを持つことができます。現在の照合は、UT8_UNICODE_CIに設定されています。 UTF8 charの完全なセットは使用されないため、照合をラテン語のようなより簡単なものに変更すべきかどうかを考えていました。それは何かを変えるでしょうか?
解決
測定可能な違いを生むとは思わないが、 m
と f
次に、唯一の可能な値です utf8_bin
生産する必要があります まさに と同じ結果 utf8_unicode_ci
(またはそのことについて他のほとんどの照合アルゴリズム)。そして、その照合は単純なバイナリ比較を行うので、それは最速のバイナリであることになります。
他のヒント
照合は、キャラクターがどのように順序付けられるかを定義するルールです。アルファベットシーケンスを想像してください-aは1文字、zは最後の文字(英語)です。照合はそれを言うルールです A
最初です Z
最後であり、文字の比較方法を定義するのにも役立ちます。要するに、照合はあなたの場合の何かとは何の関係もありません。
MySQLが後でブールタイプを作成するまで、そのフィールドをTinyIntに設定することです。そうすれば、どの時点でも発生する可能性のあるチャーセットの問題を回避しますが、例では実際には重要ではありません。
所属していません StackOverflow