这是一个提供信息的问题而不是如何.我在MySQL中创建了一个默认编码设置为UTF-8的数据库.现在一些主键是VARCHAR,它使主键超过1000位限制,因为每个使用utf-8的char是3个字节.每个密钥是255个字符,它将密钥带到1,530字节.
因此,如果我要将编码更改为Latin-1,则主键将低于1000字节并且像魔术一样,解决方案将起作用.但是使用UTF-8有什么好处呢?它为何如此受欢迎?
Wil*_*and 11
首先; 似乎存在一两种误解:
第一; UTF-8仅对需要此字符的字符使用多个字节; 这是一个VBR编码.
第二; 255乘以3不是1530; 它只有一半.
第三; 同时请记住,我本身并不是一个真正的数据库专家; VARCHAR主键听起来是一个非常糟糕的主意.
UTF-8受欢迎的原因; 正如@Tomas Kohl所说; 是它可以代表任何Unicode字符; 但仍允许以单字节表示ASCII(U + 127和down).
如果您有任何国际野心无论如何 ; 永远不要使用UTF-8(或简称N'DUUH!); 或者你会后悔的.
很难.
UTF-8很受欢迎,因为它为处理非英文字符带来了理智.它支持各种非英语字母表,如阿拉伯语或中文.如果您的应用程序有志于本地化为其他语言,UTF-8肯定会为您节省许多麻烦.只需搜索"字符编码",您就会看到其中有多少.
除此之外,我建议您尽可能缩短主键(理想情况下是数字),以提高性能.
| 归档时间: |
|
| 查看次数: |
1823 次 |
| 最近记录: |