1

char(1)私のMySQLテーブルには、基本的にmまたはfの値しか持てないタイプのフィールドがあります。現在の照合順序は ut8_unicode_ci に設定されています。utf8文字の完全なセットが使用されることはなく、文字mまたはfのみが使用されるため、照合をラテン語のようなより単純なものに変更する必要があるかどうかを考えていました。それは何かを変えるでしょうか?

4

2 に答える 2

2

照合は、文字がどのように順序付けられるべきかを定義する規則です。アルファベット シーケンスを想像してみてください。A は最初の文字で、Z は最後の文字です (英語)。A照合は、それが最初で最後であるという規則であり、Z文字の比較方法を定義するのにも役立ちます。要するに、あなたの場合、照合は何の関係もありません。

すべきことは、MySQL が後でブール型を思いつくまで、そのフィールドを tinyint に設定することです。そうすれば、任意の時点で発生する可能性のある文字セットの問題を回避できますが、この例では実際には重要ではありません。

于 2011-06-14T13:03:46.290 に答える
2

それが測定可能な違いを生むとは思えませんが、mfが唯一の可能な値である場合、(またはその点で他のほとんどの照合アルゴリズム)とまったく同じ結果utf8_binが生成されるはずです。そして、その照合は単純なバイナリ比較を行うため、最速の照合になるはずです。utf8_unicode_ci

于 2011-06-14T13:06:53.083 に答える