Domanda

Ho un campo di tipo char(1) Nella mia tabella MySQL che in pratica può avere solo valori m o f. La sua correzione attuale è impostata su UT8_UNICODE_CI. Stavo pensando se dovrei o non dovrei cambiare la raccolta in qualcosa di più semplice come il latino perché l'intero set di caratteri UTF8 non è mai usato - solo i caratteri m o f. Questo cambierebbe qualcosa?

È stato utile?

Soluzione

Dubito che farà qualsiasi differenza misurabile, ma se m e f sono gli unici valori possibili, quindi utf8_bin dovrebbe produrre Esattamente gli stessi risultati di utf8_unicode_ci (o la maggior parte degli altri algoritmi di raccolta per quella materia). E dal momento che quella raccolta fa un semplice confronto binario, è destinato a essere il più veloce in circolazione.

Altri suggerimenti

La raccolta è la regola che definisce come dovrebbero essere ordinati i personaggi. Immagina una sequenza di alfabeto - A è 1a lettera e Z è l'ultima lettera (in inglese). La raccolta è la regola che lo dice A è il primo e Z è l'ultimo e aiuta anche a definire come vengono confrontati i personaggi. In breve, la raccolta non ha nulla a che fare con nulla nel tuo caso.

Quello che dovresti fare è impostare quel campo su TinyInt, fino a quando MySQL non viene fornito con i tipi booleani in seguito. In questo modo aggirerai qualsiasi problema di chatset che potrebbe sorgere in qualsiasi momento, anche se nel tuo esempio non sono proprio ciò che conta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top