Différence entre les collations utf8mb4_unicode_ci et utf8mb4_general_ci dans MariaDB / MySQL?
Je suis connecté sur MariaDB/MySQL et est entré:
SHOW COLLATION;
Je vois utf8mb4_unicode_ci
et utf8mb4_general_ci
parmi les classements disponibles. Quelle est la différence entre ces deux classements, et qui devrions-nous utiliser?
source d'informationauteur Flux | 2016-05-18
Vous devez vous connecter pour publier un commentaire.
Eh bien, vous ne devez lire dans la documentation. Je ne peux pas vous dire ce que vous devriez être à l'aide parce que chaque projet est différent.
10.1.3 Classement Des Conventions De Nommage
MySQL noms de classement suivez ces conventions:
Un classement nom commence par le nom du jeu de caractères avec lesquels il est associé, suivi par un ou plusieurs suffixes indiquant d'autres classement caractéristiques. Par exemple, utf8_general_ci et latin_swedish_ci sont des classements pour l'utf8 et latin1 jeux de caractères, respectivement.
Une langue spécifique de classement comprend un nom de langue. Par exemple, utf8_turkish_ci et utf8_hungarian_ci de tri des caractères du jeu de caractères utf8 en utilisant les règles de turc et le hongrois, respectivement.
Cas de sensibilité pour le tri est indiqué par _ci (insensible à la casse), _cs (sensible à la casse), ou _bin (binaire caractère; les comparaisons sont basées sur le caractère binaire des valeurs de code). Par exemple, latin1_general_ci est insensible à la casse, latin1_general_cs est sensible à la casse, et latin1_bin utilise le code binaire des valeurs.
Pour l'Unicode, les noms de classement peut inclure un numéro de version pour indiquer la version de l'Unicode Collation Algorithm (UCA) sur laquelle le classement est basé. UCA-en fonction des classements sans un numéro de version dans le nom de la version 4.0.0 UCA poids clés. Par exemple:
utf8_unicode_ci (pas de version nommée) est basée sur l'UCA 4.0.0 poids touches >(http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt).
utf8_unicode_520_ci est basé sur l'UCA 5.2.0 poids clés (http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt).
Pour l'Unicode, le xxx_general_mysql500_ci classements de préserver le pré-5.1.24 de commande de l'original xxx_general_ci les classements et les permis des améliorations pour les tables créées avant MySQL 5.1.24. Pour plus d'informations, voir la Section 2.11.3, “Vérifier Si les Tableaux ou les Index Doivent Être Reconstruit”, et de l'Article 2.11.4, “la Reconstruction ou la Réparation des Tables ou Index”.
Source : https://dev.mysql.com/doc/refman/5.6/en/charset-collation-names.html
Pour voir un peu plus la discussion des différences, vous pouvez aller à https://dev.mysql.com/worklog/task/?id=2673 et cliquez sur "Architecture de Haut Niveau".