0

MySQL のパフォーマンスを向上させようとしています。Latin1文字セットを使用して学んだことの1つは、latin1が使用するバイト数が少ないため、UTF8を使用するよりも高速です..しかし、照合を変更するとデータはどうなるのだろうか? 今日の私のアプリケーションでは、ほとんどのものはアメリカ英語ですが、他の言語のストアも存在しないとは保証できません. 誰かが英語以外のデータを保存している場合、そのデータはあまり気にしません。

私の質問: 1) データベースの照合順序を latin1 に変更した場合、データがアメリカ英語で書かれていない場合、データはどうなりますか? 2) どの lation1_? latin1_bin、latin1_general_ci、または latin1_general_cs を使用する必要がありますか? 可能であれば、違いは何ですか?3) データベースの照合を変更する場合、各テーブルの照合も個別に変更する必要がありますか?

ありがとう

4

1 に答える 1

0

UTF 8 は、奇妙な文字が含まれている場合にのみ余分なバイトを使用します。したがって、照合順序を変更しないでください。それは役に立ちません。UTF 16 は、すべての言語のすべての文字を保持するために開発されました。はい、16 ビットを使用するため、utf16 を使用している場合、ほとんどが標準のラテン文字を使用している場合は utf8 をお勧めします。utf 8 が妥協点です。「より多くのバイトが来る」ことを意味する特殊文字があり、それを見ると、次のものをグループ化します。ただし、ラテン文字しかない場合、バイトはラテン照合とまったく同じ数になります。

具体的に答えるには、新しいテーブルのデフォルトの照合を設定できますが、はい、既存のテーブルごとにそれを行う必要があります。テーブルをリストし、それぞれに対してSQLステートメントを実行して変更するSQLステートメントでそれを行うことができます。(1 を変更し、SQL ステートメントに注意してください)。しかし、繰り返しますが、それをしないでください。utf8 が標準になっているのには理由があります。あなたのパフォーマンスの問題は他の場所にあります。

于 2013-10-16T16:47:12.377 に答える