Which of us is right?
C'era una volta, il tuo capo era. Ma col passare del tempo, le cose cambiano. Al giorno d'oggi, sei (ma prima di correre dal tuo capo, assicurati di leggere anche la risposta di Nelson ).
Le vecchie versioni di MySQL e le vecchie versioni di principalmente tutto , si sono rivelate molto migliori con il precedente Latin1 / ISO-8859-1 (5) rispetto a UTF8.
C'è una ragione per cui UTF8 è stato creato, evoluto e spinto per lo più ovunque: se implementato correttamente, funziona molto meglio . Esistono alcuni problemi di prestazioni e archiviazione derivanti dal fatto che un carattere Latin1 è 8 bit, mentre un carattere UTF8 può essere lungo da 8 a 32 bit. Pertanto, quando si pianifica VARCHAR
è necessario tenerne conto. E le tue routine di ricerca saranno un po 'più lente. Saranno in grado di fare più cose (es. Ricerche con sensibilità all'accento o senza . fai quelli in Latin1 senza molto lavoro), ma loro prenderanno un po 'più di tempo.
D'altro canto, la memoria è economica , il sovraccarico realistico per le dimensioni dei file è inferiore al 2-3%, la potenza di calcolo è anche economica e sta diventando più economica buon accordo con la legge di Moore; mentre il tuo tempo e le aspettative dei tuoi clienti sicuramente non sono .
Potresti doverti preoccupare degli strumenti di ricerca, ecc. se tu eri quello che sviluppa tali strumenti. Ma probabilmente non lo sei. usi quegli strumenti; anche quelli che non erano completamente conformi a UTF8 ieri (come non lo erano i precedenti MySQL), sono oggi, o presto lo saranno (per esempio MySQL con supporto utf8mb4).
Quindi, pianificando attentamente e implementando UTF8 nel modo giusto ( not schiaffo su Latin1 come ripensamento) puoi avere un codice che è a prova di futuro molto ragionevolmente, che , se hai intenzione di fare affari con qualsiasi paese asiatico, è una cosa molto buona. E se non hai piani del genere, le altre persone avranno e quelle persone potrebbero essere i tuoi clienti, fornitori o partner.
Quindi quando iniziano a inviarti dati UTF8, dovrai impostare un complicato thingamajig per convertire da e verso Latin1 e affrontare casi irrisolvibili.
Quando calcoli nel budget il costo di diverse schermaglie contro i ninja mojibake malvagi , e considera che non hanno intenzione di andare via - come hai già scoperto - allora ti renderai conto che andare in UTF8 non è solo più semplice, sarà più economico .