Яка різниця між UTF-8 і utf8mb4 у MySQL?
У MySQL UTF8 може кодувати до 3 байтів на символ. Однак для кодування максимального символу в Unicode потрібно 4 байти. У результаті UTF8 не може повністю підтримувати всі символи Unicode. З іншого боку, UTF8MB4 є розширенням UTF8 і використовує максимум 4 байти на символ.
MySQL підтримує декілька наборів символів Unicode: utf8mb4 : Кодування UTF-8 набору символів Юнікод із використанням від одного до чотирьох байтів на символ. utf8mb3 : кодування UTF-8 набору символів Unicode з використанням від одного до трьох байтів на символ. Цей набір символів застарів; натомість використовуйте utf8mb4.
Вимоги до зберігання Як випливає з назви, максимальна кількість байтів, яку може прийняти один символ із набором символів utf8mb4, становить чотири байти. Це більше, ніж вимоги для utf8mb3, який займає три байти та багато інших наборів символів MySQL.
Щоб максимально підвищити сумісність і перспективність ваших даних і програм, ми рекомендуємо вам використовувати набір символів utf8mb4 коли це можливо. UTF8 є застарілим синонімом utf8mb3, і ви повинні очікувати, що його буде видалено в майбутніх версіях MySQL. Замість цього вкажіть utfmb3 або (бажано) utfmb4.
MySQL UTF-8 насправді часткова реалізація повного набору символів UTF-8. Зокрема, кодування MySQL UTF-8 використовує максимум 3 байти, тоді як для кодування повного набору символів UTF-8 потрібні 4 байти.