Начиная с MySQL 5.5.3 вы должны использовать utf8mb4, а не utf8. Обе эти группы относятся к кодировке UTF-8, но более старая utf8 имеет специфичные для MySQL ограничения, не дающие использовать символы, пронумерованные выше 0xFFFD.
Таким образом, больше не нужно использовать ни utf8_general_ci, ни utf8_unicode_ci.
Что касается новых версий кодировки utf8mb4_general_ci и utf8mb4_unicode_ci. То предпочтительной является unicode, а не general. Вариант utf8mb4_general_ci будет чуть более быстрым при сортировке (в настоящее время это уже неактуально), но имеет проблемы с сортировкой в определённых языках. Кодировка utf8mb4_unicode_ci лишена этих недостатков.
Итак, в настоящее время для баз данных и таблиц MySQL рекомендуется использовать кодировку utf8mb4_unicode_ci.
Совет: для сохранения места с utf8mb4, используйте VARCHAR вместо CHAR. В противном случае MySQL будет резервировать четыре байта для каждого символа в стобце CHAR CHARACTER SET utf8mb4, поскольку это максимально возможная длина. Например, MySQL должна зарезервировать 40 байт для столбца CHAR(10) CHARACTER SET utf8mb4.
на главную сниппетов