1つの列をUTF-8に設定してlatin1_に置くことは賢明ですか?それはクエリのパフォーマンスに影響を及ぼしますか(おそらく、いくつかのコンバージョンが呼び出されます)?または、すべてをUTF-8に設定する必要があります。 (ラテンの列はアプリケーションによって生成され、すべてlatin1_にあるので、utf-8に入れておく必要はなく、この場合はVARCHARの魔法使いがもっと重要です。私はそうでないとTEXTに切り替えるのは嫌ですする必要がある )。 Phpはそのテーブルに対してINSERT、SELECTおよびUPDATEを呼び出すだけです。おそらく、そのテーブルを2つのテーブルに分けると、魔女は私を2番目の質問に導きます。1つのテーブルの異なる照合順序と照合の問題
php mysqli->接続文字セットがUTF-8に設定されていて、latin1_に設定されたテーブルを選択、挿入、および更新している場合は、そのままにしてもいいですか、それともutf-アプリケーションによってすべてlatin1_の列が発生してもあなたと呼ばれる任意の変換関数があるとlatin1_であり、また、VARCHARは、あなたがUTF-8に、クライアントの文字セットを設定するために
mysqli::set_charset()
を使用する場合は、その後、)TEXTに
0
A
答えて
1
を切り替える必要がありますMySQLはすべての受信クエリがそのエンコーディングを使用することを期待します。 latin1 charsetを使用する列の値を含め、UTF-8のすべての結果も表示されます。
変換は自動的に行われ、少なくともいくらかのオーバーヘッドが発生します。
アプリケーションがどこにでもUTF-8を送信し、期待している限り、すべては問題ありません。もしそうでなければ、あなたは悪い時を過ごすでしょう。
エンコードを混在させるのは賢明ですか?いいえ、私はそう信じていません。
関連する問題
- 1. 照合順序の競合
- 2. SolgeがSuggesterコンポーネントの照合順序を1つのみ返す
- 3. SQL照合順序の競合一時テーブル
- 4. nullの場合のMySQL照会順序
- 5. 異なる照合順序でSelect * intoテーブルを作成します
- 6. Mysqlの照合問合せの問題
- 7. のMySQL:utf8_binから変更照合順序が完全なテーブルを考えると
- 8. SQL Serverの照合順序、Management Studioの結果は、asp.net異なるが
- 9. ストアドプロシージャの照合問題
- 10. クエリlaravelでの照合順序MySQLのエラーの不正なミックス
- 11. ポストグルのテーブル結合順序
- 12. MySQLの文字セットと照合順序 - UTF8mb4 520
- 13. 2つのテーブルと合計を照会
- 14. フィンガープリントの照合と照合
- 15. SQL 2005 2008照合問題
- 16. 列にMySQLのテーブルに照合順序を変更するには
- 17. 異なる照合順序で複数のインスタンスを持つSQL Server 2012のSSMSを実行しています
- 18. 特定の照合順序でsymfony2でDBを作成する
- 19. SQL Serverデータベースの照合順序を選択する方法
- 20. Mysqlの接続照合順序を変更するには
- 21. SQL Server 2005の照合の問題
- 22. ライブデプロイ時のSql照合の問題
- 23. 2つのテーブルを照合するSQL
- 24. Anydac TADTableコンポーネントの照合問題
- 25. Latin1_General_CI_AI照合テーブル
- 26. Azure SQL Serverの照合順序を変更
- 27. Artifactory:データベースの照合順序がSQL Serverインスタンスと異なる可能性はありますか?
- 28. アクセスリンクサーバーのテーブルの照合
- 29. SQL照会の場所と順序を組み合わせる方法
- 30. SQL Server 2008 R2のデフォルトの照合順序が正しくない
VARCHARをTEXTフィールドに変更し、テーブル全体をUTF-8に変換することをお勧めしますか。 – Dime
なぜVARCHARをTEXTに変更しますか?たとえば、MySQLの非常に古いバージョンを使用していない限り、VARCHAR(32)は使用される文字セットに関係なく32文字をサポートします。 http://stackoverflow.com/questions/1997540/mysql-varchar-lengths-and-utf-8 – ShiraNai7
問題は、それは非常に正確に計算され、私はVARCHAR(20 000)とVARCHAR(40 000)の2つのフィールドが必要なので、UTF -8はそれをサポートすることができません(サイズはバイト単位で制限されています)。 UTF-8が使用されている場合、テーブルの最大VARCHARは〜21000です!ですから、質問はTEXT UTF-8に変更するか、latin VARCHARのままにして自動変換を行います。何を使うのが速いでしょうか? (私は5.6.34のmysqlバージョンを持っています) – Dime