MySQL chce konwertować ciągi znaków podczas wykonywania INSERT i SELECT . Konwersja odbywa się między tym, co deklarujesz klientowi mieć i co kolumna jest zadeklarowany do przechowywania.
Jedynym sposobem na uniknięcie tego jest użycie VARBINARY i BLOB zamiast VARCHAR i TEXT .
Użycie COLLATION utf8mb4_bin nie unika konwersji do/z CHARACTER SET utf8mb4; mówi tylko, że WHERE i ORDER BY powinien porównywać bity zamiast zajmować się akcentami i składaniem kopert.
Pamiętaj, że CHARACTER SET utf8mb4 to sposób na kodowanie tekstu; COLLATION utf8mb4_* to zasady porównywania tekstów w tym kodowaniu. _bin jest prosty.
UNIQUE obejmuje porównywanie pod kątem równości, stąd COLLATION . W większości zestawień utf8mb4 3 (bez spacji) będą porównywalne. utf8mb4_bin potraktuje 3 jako różne. utf8mb4_hungarian_ci traktuje one=One>öne.
Końcowe spacje są kontrolowane przez typ danych kolumny (VARCHAR lub inny). Najnowsza wersja ma nawet ustawienie określające, czy brać pod uwagę końcowe spacje.