Мне приходится много работать с регулярными выражениями на базах данных с текстами на кириллице с кодировкой utf8. В версии 5.7 приходилось иногда выполнять такое: SELECT titre FROM `goods_a` WHERE CONVERT(titre using cp1251) collate cp1251_general_cs REGEXP '([а-яА-Я]{1,})\\(
В версии 8.0.11 регулярные выражения работают полно-масштабно напрямую с кодировкой utf8mb4 (4-Byte UTF-8 Unicode Encoding), так как используется регулярные выражения на базе ICU, International Components for Unicode.
Это кардинальное изменение, особенно для баз данных, где используется кириллица. По сути это не просто очередная версия MySQL, а как новая база данных.
В то же время обновление прошло без особых проблем, кроме тех случаев, что я описал в заметке. Надеюсь, это сохранит кому-то пару часов времени.
Обычно при обновлении версии MySQL не приходилось заново читать целые разделы.
Как я написал в заметке можно выполнять
или же прописать один раз в файле my.cnf
Я потратил довольно много времени, пока не понял почему не могу загрузить данные из локального файла через
SELECT titre FROM `goods_a` WHERE CONVERT(titre using cp1251) collate cp1251_general_cs REGEXP '([а-яА-Я]{1,})\\(
В версии 8.0.11 регулярные выражения работают полно-масштабно напрямую с кодировкой utf8mb4 (4-Byte UTF-8 Unicode Encoding), так как используется регулярные выражения на базе ICU, International Components for Unicode.
Это кардинальное изменение, особенно для баз данных, где используется кириллица. По сути это не просто очередная версия MySQL, а как новая база данных.
В то же время обновление прошло без особых проблем, кроме тех случаев, что я описал в заметке. Надеюсь, это сохранит кому-то пару часов времени.