以前は、utf8しかありませんでした; 将来、 今utf8mb4 デフォルトの文字セットになります。utf8mb4 はデフォルトの文字セットです。
過去には、_general_ci デフォルトの照合でした。次に_unicode_ci (Unicode 4.0)の方が優れていて、_unicode_520_ci (Unicode 5.20)。将来(MySQL 8.0)、デフォルトは_0900_ci_aiになります (Unicode 9.0)。
その間、道路はMySQLの過去の過ちによって生成された甌穴でいっぱいです。そして、WP設計者は、甌穴に気付かない大きなタンクで運転しています。
MySQL 5.6は、過度に長いVARCHAR(255)のWPインデックスと一緒にインデックスの767制限のために、多くのWPユーザーを飲み込んだ大きな甌穴でした。 utf8mb4を使用する可能性 。あなたは5.7.17を持っていることによってそれをはるかに超えています。 (将来の8.0への移行は、それほどでこぼこではなくなります。)
つまり、5.7.7以降で新しく作成されたデータベース/テーブル/列で767の問題が発生することはありませんが、古いバージョン(5.5.3以降)から移行されたものには問題がある可能性があります。特に、何かが原因でutf8mb4に変更された場合はそうです。
何をすべきか?すべてのオプションを詳しく説明しようとすると、おそらくスペースが不足します。したがって、データの履歴、アップグレードパス(存在する場合)、現在の設定、ROW_FORMATを提供します。 テーブルのうち、CHARACTER SET およびCOLLATION 列のうち、SHOW VARIABLES LIKE 'char%';の出力
どこにいればいいの? 5.7.7以降の場合、utf8mb4 およびutf8mb4_unicode_520_ci 実用的なところならどこでも。その文字セットは絵文字とすべての中国語を提供します(utf8は提供しません)。その照合は利用可能な最高のものですが、それがどこで重要であるかに気付くのは難しいかもしれません。
注:照合名の最初の部分は、それが機能する唯一の文字セットです。それはutf8_unicode_ciです utf8mb4では機能しません 。