sql >> Database teknologi >  >> RDS >> Mysql

UTF-8:Generelt? Beholder? Unicode?

Generelt utf8_general_ci er hurtigere end utf8_unicode_ci , men mindre korrekt.

Her er forskellen:

For ethvert Unicode-tegnsæt er handlinger, der udføres ved hjælp af _general_ci-sorteringen, hurtigere end dem for _unicode_ci-sorteringen . For eksempel er sammenligninger for utf8_general_ci-sorteringen hurtigere, men lidt mindre korrekte, end sammenligninger for utf8_unicode_ci. Grunden til dette er, at utf8_unicode_ci understøtter mappings såsom udvidelser; det vil sige, når et tegn sammenlignes som lig med kombinationer af andre tegn. For eksempel på tysk og nogle andre sprog er "ß" lig med "ss". utf8_unicode_ci understøtter også sammentrækninger og ignorerbare tegn. utf8_general_ci er en ældre sortering, der ikke understøtter udvidelser, sammentrækninger eller ignorerbare tegn. Det kan kun foretage en-til-en sammenligninger mellem karakterer.

Citeret fra:http://dev.mysql. com/doc/refman/5.0/en/charset-unicode-sets.html

For mere detaljeret forklaring, læs venligst følgende indlæg fra MySQL-fora:http:/ /forums.mysql.com/read.php?103,187048,188748

Med hensyn til utf8_bin:Begge utf8_general_ci og utf8_unicode_ci udføre en sammenligning uden forskel på store og små bogstaver. I modsætning hertil skelner utf8_bin mellem store og små bogstaver (blandt andre forskelle), fordi den sammenligner de binære værdier af tegnene.



  1. Primær nøgle i SQL:Alt hvad du behøver at vide om primære nøgleoperationer

  2. Hvorfor ville en IN-tilstand være langsommere end =i sql?

  3. Migrering fra MySQL til PostgreSQL - hvad du bør vide

  4. For sidste gang, NEJ, du kan ikke stole på IDENT_CURRENT()