我知道MySQL默认为latin1编码,显然需要 1 个字节来存储一个字符latin1和 3 个字节来存储一个字符utf-8- 那是对的吗?
我正在开发一个网站,希望该网站能够在全球范围内使用。我绝对需要吗utf-8?或者我可以不用使用 latin1 吗?
另外,我尝试更改一些表latin1 to utf8但我得到了这个错误:Speficief key was too long; max key length is 1000 bytes
有谁知道这个问题的解决办法吗?我真的应该解决这个问题还是 latin1 就足够了?
谢谢,
亚历克斯
在 latin1 中存储一个字符需要 1 个字节,在 utf-8 中存储一个字符需要 3 个字节 - 这是正确的吗?
它需要1
字节来存储latin1
性格和1
to 3
字节来存储UTF8
特点。
如果您仅在字符串中使用基本的拉丁字符和标点符号(0
to 128
in Unicode
),两个字符集将占用相同的长度。
另外,我尝试将一些表从 latin1 更改为 utf8 但出现此错误:“Specificief key 太长;最大密钥长度为 1000 字节” 有谁知道这个问题的解决方案吗?我真的应该解决这个问题还是 latin1 就足够了?
如果您有一列VARCHAR(334)
或更长时间,MyISAM
不会让您在其上创建索引,因为该列极有可能占用更多1000
bytes.
请注意,这种长度的密钥很少有用。您可以创建一个前缀索引,该索引几乎对任何现实世界的数据都有选择性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)