MySQL UTF/Unicode迁移技巧

MySQL UTF/Unicode迁移技巧,mysql,unicode,utf-8,internationalization,Mysql,Unicode,Utf 8,Internationalization,在尝试将MySQL表从默认大小写INSTIVE REQUESTIVE或ascii字符集迁移到utf-8时,是否有人需要注意一些技巧或关键时刻?我参与的一些项目正在努力实现更好的国际化,数据库将成为这一变化的重要组成部分 在我们改变数据库之前,我们要将每个站点转换为使用UTF-8字符编码(从最不重要到最重要),以帮助确保所有输入/输出使用相同的字符集 感谢您的帮助我将浏览以下网站/文章以帮助找到答案 在我写这篇文章的时候,我还发现了Derek Sivers@O'Reilly ONLamp的一

在尝试将MySQL表从默认大小写INSTIVE REQUESTIVE或ascii字符集迁移到utf-8时,是否有人需要注意一些技巧或关键时刻?我参与的一些项目正在努力实现更好的国际化,数据库将成为这一变化的重要组成部分

在我们改变数据库之前,我们要将每个站点转换为使用UTF-8字符编码(从最不重要到最重要),以帮助确保所有输入/输出使用相同的字符集


感谢您的帮助

我将浏览以下网站/文章以帮助找到答案

在我写这篇文章的时候,我还发现了Derek Sivers@O'Reilly ONLamp的一篇非常有主题性的文章

一些提示:

  • 您的
    CHAR
    VARCHAR
    列将占用多达3倍的磁盘空间。(对于瑞典语单词,您可能不会获得太多的磁盘空间增长。)
  • 在读取或写入数据库之前,请使用
    设置名称utf8
    。如果你不这样做,那么你将得到部分乱码字符
您的
CHAR
VARCHAR
列将占用多达3倍的磁盘空间


只有当它们充满了拉丁文-1,序数>128时。否则,UTF-8增加的空间使用是最小的。

排序规则并不总是有利的。您将得到umlats排序到非umlated版本,这并不总是正确的。可能想使用utf8_-bin,但所有内容都区分大小写

注意索引长度限制。如果表格是结构化的,请说:

一个varchar(255) b瓦查尔(255) 键('a','b')

您将超过密钥长度的1000字节限制。255+255没问题,但255*3+255*3行不通