Differenze di MySQL Collation utf8_unicode


10

Ma ho letto l'importanza di MySQL Collation e quello che ho imparato finora riguardo alla compatibilità e alla precisione è che questi 4 sembrano essere la mia scommessa migliore.

  • utf8_unicode_ci
  • utf8_unicode_520_ci
  • utf8mb4_unicode_ci
  • utf8mb4_unicode_520_ci

Da quanto ho capito, uft8mb4 sarebbe utile per i personaggi con supporto per più lingue (caratteri) (giapponese per esempio). uf8 supporta solo 3 byte mentre uf8mb4 supporta 4 byte. Quindi sembra che la scelta ovvia sarebbe uf8mb4, ma il problema sembra essere che hai un limite di lunghezza (Accidenti! Voglio anche la mia torta e mangiarla), il che è un po 'preoccupante (penso).

Quindi prendi in considerazione lo standard 520; che offre di più, da quel poco che ho potuto trovare su di esso. Ma questo è ovviamente il problema, ho potuto trovare molto poco al riguardo. Solo che la gente dice che è un miglioramento, pur essendo molto vago su come sia.

Voglio il massimo che posso ottenere con il minor numero di restrizioni possibile ... Ho pensato che qualcuno qui potesse sapere una cosa o due. Il sito ufficiale di MySQL non era così informativo come speravo.

Dei 4 quali offrirebbero la massima compatibilità, precisione e durata di archiviazione? Inoltre, qual è veramente la grande differenza tra lo standard 502?

Risposte:


10

I nomi delle regole di confronto Unicode possono includere un numero di versione per indicare la versione dell'algoritmo di confronto Unicode (UCA) su cui si basa il confronto. Le regole di confronto basate su UCA senza un numero di versione nel nome utilizzano i version-4.0.0tasti peso UCA . Un nome di confronto come quello utf8_unicode_520_cisi basa sulle chiavi di peso UCA 5.2.0 .

Vedi https://dev.mysql.com/doc/refman/5.6/en/charset-collation-names.html .


Per spiegare ulteriormente questo: le regole di confronto non modificheranno la codifica utilizzata (ciò che MySQL chiama erroneamente character seto charset), quindi utf8ti fornirà UTF-8 a 3 byte (non standard) e utf8mb4ti fornirà UTF-8 a 4 byte.
jynus,

1
Quindi, in un inglese semplice, qual è la differenza tra UCA 4.0.0 e UCA 5.2.0 diversa da una è più recente. Quale sarebbe il vantaggio o lo svantaggio?
Adam,

4
Colpisce l'ordinamento. Se devi assolutamente ordinare una versione più recente (ma ancora obsoleta) dello standard Unicode, ti consigliamo di utilizzarla 520_ci. Per i miei siti Web non me ne può fregare di meno.
Mathias Bynens,

qual è la dimensione in byte del carattere di dimensione in byte più grande nelle utf8mb4_unicode_520_ciregole di confronto?
oldboy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.