MySQL-что такое utf8 general mysql500 ci?
Я только что видел, что MySQL 5.5 предлагает utf8_general_mysql500_ci
в качестве сортировки.
в чем разница с другими сортировками, как utf8_general_ci
?
должен ли я лучше использовать utf8_general_mysql500_ci
?
1 ответов
как описано в разделе изменения в MySQL 5.5.21:
новая
utf8_general_mysql500_ci
иucs2_general_mysql500_ci
добавлены параметры сортировки, которые сохраняют поведениеutf8_general_ci
иucs2_general_ci
от версий MySQL, предшествующих 5.1.24. Ошибка #27877 Исправлена ошибка в исходных сортировках, но введена несовместимость столбцов, содержащих немецкий'ß'
Латинская маленькая буква SHARP S. (В результате исправления этот символ сравнивается равным характеры, с которыми его ранее сравнивали разные.) Симптом проблемы после обновления до MySQL 5.1.24 или новее с версии старше 5.1.24 - этоCHECK TABLE
выдает ошибку:Table upgrade required. Please do "REPAIR TABLE `t`" or dump/reload to fix it!к сожалению,
REPAIR TABLE
не удалось устранить проблему. Новые параметры сортировки позволяют старые таблицы, созданные до MySQL 5.1.24, быть обновлены до текущих версий MySQL.для преобразования таблицы после двоичного файла обновление, которое оставляет файлы таблиц на месте, изменяет таблицу, чтобы использовать новые параметры сортировки. Предположим, что стол
t1
содержит один или более проблематичнымutf8
столбцы. Чтобы преобразовать таблицу на уровне таблицы, используйте следующую инструкцию:ALTER TABLE t1 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci;
чтобы применить изменение на основе конкретного столбца, используйте такую инструкцию (обязательно повторите определение столбца, как первоначально указано, за исключением
COLLATE
пункта):ALTER TABLE t1 MODIFY c1 CHAR(N) CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci;
обновить таблица с помощью процедуры дампа и перезагрузки, дамп таблицы с помощью mysqldump изменить
CREATE TABLE
оператор в файле дампа для использования Новой Сортировки и перезагрузки таблицы.после внесения соответствующих изменений
CHECK TABLE
не должно сообщать об ошибке.для получения дополнительной информации см. раздел проверка необходимости перестроения таблиц или индексов и восстановление или ремонт таблиц или Индексы. (Ошибка #43593, Ошибка #11752408)