sql >> データベース >  >> Database Tools >> phpMyAdmin

テーブルCHARSETがutf8mb4に設定され、COLLATIONがutf8mb4_unicode_520_ciに設定されているのはなぜですか

    以前は、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では機能しません 。




    1. Magentoからすべての製品をエクスポートするには、データベースを最小化します

    2. SQLIntellisenseに現在のデータベースを認識させる

    3. Phpmyadmin export VIEW(DATABASE_NAMEまたはALGORITHMなし)

    4. [Docker]:PHPMyAdminをMySQLに接続しても機能しません