MySQL vuole convertire le stringhe quando si esegue INSERT e SELECT . La conversione è tra ciò che dichiari il cliente avere e cosa è la colonna è dichiarato in fase di archiviazione.
L'unico modo per evitarlo è con VARBINARY e BLOB invece di VARCHAR e TEXT .
L'uso di COLLATION utf8mb4_bin non evita la conversione in/da CHARACTER SET utf8mb4; dice semplicemente che WHERE e ORDER BY dovrebbe confrontare i bit invece di occuparsi degli accenti e della piegatura delle maiuscole.
Tieni presente che CHARACTER SET utf8mb4 è un modo per codificare il testo; COLLATION utf8mb4_* è regole per confrontare i testi in quella codifica. _bin è ingenuo.
UNIQUE implica il confronto per l'uguaglianza, quindi COLLATION . Nella maggior parte delle regole di confronto utf8mb4, il 3 (senza spazi) risulterà uguale. utf8mb4_bin tratterà i 3 come diversi. utf8mb4_hungarian_ci tratta uno=Uno>one.
Gli spazi finali sono controllati dal tipo di dati della colonna (VARCHAR o altro). L'ultima versione ha anche un'impostazione relativa alla possibilità di considerare gli spazi finali.