У нас есть приложение, в котором мы используем Google Cloud SQL (mysql) в качестве сервера базы данных. Базы данных находятся в сопоставлении: utf8mb4_unicode_520_ci Пользователь приложения из Таиланда сообщил, что их контент отображается в неправильном порядке и продемонстрировал: Неправильная алфавитная сортировка на тайском языке
Они также предложили следующее:
измените 'Collate' нашей базы данных с 'utf8mb4_unicode_520_ci' или любого другого на 'utf8mb4_thai_520_w2', который уже доступен в Maria DB 10.1.15 или более поздней версии
У нас разные базы данных для каждого экземпляра. Каждая база данных должна хорошо работать на определенном языке, поэтому не будет проблемой, если мы изменим параметры сортировки их базы данных.
Но я не вижу этого (или любого другого связанного с тайским языком) сопоставления, доступного в MySQL внутри cloudSQL.
Кто-нибудь знает: a) Подойдет ли какое-либо другое доступное сопоставление? б) Как можно было перейти на другую версию mysql, которая поддерживает эту (или любую другую, хорошо работающую в тайской) сортировку?
Спасибо
a) Вопрос о приемлемых сопоставлениях должен быть адресован людям, свободно владеющим языком и вашими бизнес-требованиями. Ожидания относительно порядка языков чрезвычайно зависят от региона.
Поинтересуйтесь, что конкретно в запрашиваемой локали лучше, чем у языков, основанных на алгоритме сортировки Unicode.
б) GCP Cloud SQL в настоящее время находится на версии MySQL 5.7. Более поздние разработки MariaDB недоступны. Либо выберите что-то доступное в SHOW COLLATION
или подумайте о переносе другой базы данных.
Последнее может стать серьезной проблемой при переносе. Особенно, если GCP PostgreSQL также не соответствует вашим потребностям, и этот сервис не может правильно отсортировать ваши данные. Вы можете запустить MariaDB в своей собственной инфраструктуре, но это изменит ваши операции.