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)