Какую кодировку лучше использовать в MariaDB (MySQL)?
utf8_general_ci
utf8_unicode_ci
utf8mb4_general_ci
utf8mb4_unicode_ci
utf8mb4_general_ci - если требуется микроскопически более быстрая сортировка (упрощённые правила сортировки и сравнения).
utf8mb4_unicode_ci - если требуется правильная сортировка во всех языках, которые поддерживает Unicode (правила сортировки и сравнения, прописанные в стандарте Unicode).
utf8_general_ci и utf8_unicode_ci устарели много лет назад - они позволяют записывать символы только нулевой (главной) плоскости Unicode. Т. е. только символы с кодами 0x0000-0xFFFF. Тогда как, например, подавляющее большинство эмотиконов имею. т коды более 0x10000.
А чем utf8 отличается от utf8mb4?
utf8mb4, а general_ci и unicode_ci - это не кодировки, а сравнения (collation). Они определяют, как именно строки сортируются и сравниваются. Если хранишь там в основном тексты на русском и английском, можешь использовать general_ci, т. к. продвинутые правила в таком случае тебе не будут нужны.
utf8mb3 (который называется просто utf8) даже не рассматривай, в таком случае при попытке записи некоторых символов в базу будет ошибка.
Значит utf8mb4_unicode_ci самая правильная?
MariaDB (MySQL) лучше не использовать и забыть, что такое существует. Но если нужно поднять уютный бложик на вордпрессике с базой в 10 мегабайт, то так и быть используй utf8_general_ci
А что тогда лучше использовать вместо MariaDB (MySQL)?
1