W nowych projektach bazy danych MySQL zalecane jest używanie kodowania utf8mb4, które rozwiązuje problemy występujące przy kodowaniu utf8. W całym projekcie kodowanie znaków ustawiamy na utf8mb4, zaś kodowanie dla kolejności sortowania ustawiamy na utf8mb4_unicode_ci (m.in. polskie znaki MySQL, bez rozróżniania wielkości liter).
Interesujące nas kodowanie znaków bazy danych MySQL możemy ustawić dla całego projektu, tabeli i kolumny. Warto zapoznać się z różnicami między utf8 i utf8mb4.
Kodowanie znaków MySQL, różnice (więcej na Unicode Character Sets):
- utf8 – 3 bajty, aktualnie jest aliasem do utf8mb3
- utf8mb4 – 4 bajty
Kodowanie MySQL polskie znaki dla kolejności sortowania:
- utf8mb4_unicode_ci – wspiera wiele języków
- utf8mb4_polish_ci
Kodowanie dla całego projektu w programie MySQL Workbench (rys. 1.):
- Uruchamiamy program i przechodzimy do zakładki MySQL Model.
- W części Physical Schemas klikamy dwukrotnie na MySQL Schema, obok żółtej ikony reprezentującej bazę danych.
- W oknie Schema Editor w polu rozwijanym Character Set wybieramy kodowanie znaków utf8mb4 dla całego projektu.
- Następnie w tym samym oknie w polu rozwijanym Collation wybieramy kodowanie utf8mb4_unicode_ci dla kolejności sortowania.
Rys. 1. Kodowania UTF-8 dla wybranego projektu, MySQL Workbench polskie znaki
Kodowanie dla wybranej tabeli w programie MySQL Workbench (rys. 2.):
- Na EER Diagram wybieramy interesującą nas tabelę i wchodzimy w szczegóły, przez dwukrotne kliknięcie na niej.
- W szczegółach wybranej tabeli z prawej strony na górze okna znajduje się podwójna strzałka skierowana w dół. Po kliknięciu na niej pojawią się dodatkowe pola. Nas interesuje lista rozwijana Charset, w której wybieramy utf8mb4. Następnie w liście rozwijanej Collation odpowiedzialnej za kolejność sortowania wybieramy utf8mb4_unicode_ci.
Kodowanie dla wybranej kolumny w tabeli w programie MySQL Workbench (rys. 2.):
- Na EER Diagram wybieramy interesującą nas tabelę i wchodzimy w szczegóły, przez dwukrotne kliknięcie na niej.
- Wybieramy interesującą nas kolumnę np. meta_description, następnie w szczegółach kolumny w liście rozwijanej Charset wybieramy utf8mb4, zaś w Collation wybieramy utf8mb4_unicode_ci.
Rys. 2. Ustawienie kodowania UTF-8 dla tabeli i kolumny, MySQL Workbench polskie znaki
Wybrane książki:
- Ramez Elmasri, Shamkant B. Navathe: Wprowadzenie do systemów baz danych. Wydanie VII, Wydawnictwo Helion, 2019.
- Martin Kleppmann: Przetwarzanie danych w dużej skali. Niezawodność, skalowalność i łatwość konserwacji systemów, Wydawnictwo Helion, 2018.
- Luke Welling, Laura Thomson: PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie V, Wydawnictwo Helion, 2017.
- Paul DuBois: MySQL. Vademecum profesjonalisty. Wydanie V, Wydawnictwo Helion, 2017.
- Bill Karwin: Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych, Wydawnictwo Helion, 2012.
Wybrane strony: