MySQL における一般的な utf8mb4 ソート規則は次のとおりです。
テーブルのデフォルトの文字セットが utf8mb4 に設定されているが、照合順序が明示的に指定されていない場合:
utf8mb4_0900_ai_ci 照合順序は MySQL 8.0 で導入された照合順序であるため、MySQL 8.0 テーブルを MySQL 5.7 または MySQL 5.6 にインポートすると、文字セットが認識されない可能性があります。
パラメータ制御MySQL バージョン 5.6 では、collation_server パラメータを使用して、サーバー レベルでデフォルトの照合順序を設定します。
character_set_database および collation_database パラメータは MySQL 5.7 では非推奨となり、以降のバージョンでは削除される予定です。
utf8mb4_unicode_ci と utf8mb4_general_ci の比較1. 正確性
2. パフォーマンス
補足: MySQL - utf8mb4 と等価値クエリ テストテストスクリプト ## テストテーブルを削除します。DROP TABLE IF EXISTS tb2001; tb2002 が存在する場合はテーブルを削除します。 tb2003 が存在する場合はテーブルを削除します。 ## テストテーブルを作成する CREATE TABLE tb2001( id INT AUTO_INCREMENT 主キー、 c1 VARCHAR(100) 照合utf8mb4_unicode_ci、 c2 VARCHAR(100) 照合utf8mb4_bin )ENGINE=INNODB デフォルト文字セット=utf8mb4 ; テーブルtb2002を作成します( id INT AUTO_INCREMENT 主キー、 c1 VARCHAR(100) COLLATE utf8mb4_general_ci, c2 VARCHAR(100) 照合utf8mb4_bin )ENGINE=INNODB デフォルト文字セット=utf8mb4; テーブルtb2003を作成します( id INT AUTO_INCREMENT 主キー、 c1 VARCHAR(100) 照合utf8mb4_0900_ai_ci、 c2 VARCHAR(100) 照合utf8mb4_bin )ENGINE=INNODB デフォルト文字セット=utf8mb4; ## テストデータを挿入します INSERT INTO tb2001(c1,c2) VALUES(0xF09F8D83,0xF09F8D83),(0xF09FA68A,0xF09FA68A),(0xF09F8CA0,0xF09F8CA0); tb2002(c1,c2)に値(0xF09F8D83,0xF09F8D83),(0xF09FA68A,0xF09FA68A),(0xF09F8CA0,0xF09F8CA0)を挿入します。 tb2003(c1,c2)に値(0xF09F8D83,0xF09F8D83),(0xF09FA68A,0xF09FA68A),(0xF09F8CA0,0xF09F8CA0)を挿入します。 ## 同等性クエリテスト SELECT * FROM tb2001 WHERE c1=0xF09F8D83; tb2002 から * を選択 c1=0xF09F8D83; tb2003 から * を選択 c1=0xF09F8D83; tb2001 から * を選択 c2=0xF09F8D83; tb2002 から * を選択 c2=0xF09F8D83; tb2003 から * を選択 c2=0xF09F8D83; テスト結果 mysql> SELECT * FROM tb2001 WHERE c1=0xF09F8D83; +----+------+------+ | id | c1 | c2 | +----+------+------+ | 1 | 🍃 | 🍃 | | 2 | 🦊 | 🦊 | | 3 | 🌠 | 🌠 | +----+------+------+ セット内の 3 行 (0.00 秒) mysql> SELECT * FROM tb2002 WHERE c1=0xF09F8D83; +----+------+------+ | id | c1 | c2 | +----+------+------+ | 1 | 🍃 | 🍃 | | 2 | 🦊 | 🦊 | | 3 | 🌠 | 🌠 | +----+------+------+ セット内の 3 行 (0.01 秒) mysql> SELECT * FROM tb2003 WHERE c1=0xF09F8D83; +----+------+------+ | id | c1 | c2 | +----+------+------+ | 1 | 🍃 | 🍃 | +----+------+------+ セット内の 1 行 (0.00 秒) マイSQL> mysql> SELECT * FROM tb2001 WHERE c2=0xF09F8D83; +----+------+------+ | id | c1 | c2 | +----+------+------+ | 1 | 🍃 | 🍃 | +----+------+------+ セット内の 1 行 (0.00 秒) mysql> SELECT * FROM tb2002 WHERE c2=0xF09F8D83; +----+------+------+ | id | c1 | c2 | +----+------+------+ | 1 | 🍃 | 🍃 | +----+------+------+ セット内の 1 行 (0.00 秒) mysql> SELECT * FROM tb2003 WHERE c2=0xF09F8D83; +----+------+------+ | id | c1 | c2 | +----+------+------+ | 1 | 🍃 | 🍃 | +----+------+------+ セット内の 1 行 (0.00 秒) テストの概要
これで、MySQL の utf8mb4 ソート規則に関するこの記事は終了です。MySQL の utf8mb4 ソートの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: JavaScript フロントエンドのタイムアウト非同期操作に最適なソリューション
導入保存時と読み取り時に CHAR 型と VARCHAR 型の違いを本当にご存知ですか?まずいくつか...
目次間違い1: データの列が多すぎる誤解2: 共同クエリが多すぎる誤解3: ENUMの代わりにSET...
1. 複合主キーいわゆる複合主キーとは、テーブルの主キーが複数のフィールドで構成され、ビジネス上の意...
1. テーブル構造 2. 表データ 3. クエリのteacher_nameフィールドは空にすることは...
最初にsudo suコマンドを使用して root アカウントに切り替えることをお勧めします。そうしな...
1. 概要MySQL バージョン: 5.6.21ダウンロードアドレス: https://dev.my...
純粋な CSS3 で実装された美しい入力ボックス アニメーション スタイル ライブラリを共有します ...
最近、セキュリティ製品をテストする必要があったため、mariadb の起動ユーザーを root に調...
現在、OK ボタンをクリックしたときやキーボードの Enter キーを押したときに操作を実行するとい...
目次1. 関数バインディング2. パラメータと$eventを使用する3. 1つのイベントに複数の関数...
1 はじめにデータベース内のデータを操作するための SQL 文を記述するときに、いくつかの不快な問題...
目次1. テスト環境1.1 ハードウェアとソフトウェア1.2 テーブル構造2. テストの目的2.1 ...
tcpdump は、ネットワークの問題のトラブルシューティングに効果的に役立つ、柔軟で強力なパケット...
1. Webページを開くと503サービス利用不可が表示されますが、更新すると正常にアクセスできます。...
1. 開発環境 vue+vant 2. コンピュータシステム Windows 10 Profess...