Vantaggi UTF8:
-
Supporta la maggior parte delle lingue, comprese le lingue RTL come l'ebraico.
-
Non è necessaria alcuna traduzione durante l'importazione/esportazione di dati in componenti compatibili con UTF8 (JavaScript, Java, ecc.).
Svantaggi UTF8:
-
I caratteri non ASCII impiegheranno più tempo per la codifica e la decodifica, a causa del loro schema di codifica più complesso.
-
I caratteri non ASCII occuperanno più spazio poiché potrebbero essere archiviati utilizzando più di 1 byte (caratteri non inclusi nei primi 127 caratteri del set di caratteri ASCII). Un
CHAR(10)
oVARCHAR(10)
campo potrebbe richiedere fino a 30 byte per memorizzare alcuni caratteri UTF8. -
Fascicolazioni diverse da
utf8_bin
sarà più lento poiché l'ordinamento non verrà mappato direttamente all'ordine di codifica dei caratteri) e richiederà la traduzione in alcune procedure memorizzate (poiché le variabili predefinite sonoutf8_general_ci
confronto). -
Se hai bisogno di
JOIN
Campi UTF8 e non UTF8, MySQL imporrà un GRAVO colpo di prestazione. Quelle che sarebbero query inferiori al secondo potrebbero richiedere minuti se i campi uniti sono set di caratteri/confronti diversi.
In conclusione:
Se non hai bisogno di supportare lingue diverse da Latin1, vuoi ottenere le massime prestazioni o hai già tabelle usando latin1
, scegli latin1
.
Altrimenti, scegli UTF8
.