La raccolta prescelta è importante in questo caso?
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?
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.