我与拉美的理解VS UTF8是按如下:拉丁Vs的UTF8字符集和使用索引(MySQL的5.5)
“拉丁仅支持拉丁字符(如英语),但UTF-8支持的所有国际语言,如法语,,葡萄牙语,阿拉伯语等(甚至不支持完全,因为它使用每字符3字节,而它应该使用每个字符4字节来照顾所有国际utf8字符)按照标准拉丁存储1个字符在1字节而utf8 1个字符在1-3字节,但如果我们将所有字符以拉丁文存储在一个utf8类型列中,那么它将在1字节中存储1个字符。“
latin vs utf8索引:“列值取字节为每列中的字符和字符集类型,但索引总是以字节为单位存储值。”
可能有人清楚我的下面的问题,我会非常感激。
假设在utf8字符集类型表中有一个标题varchar(250)列,并且它有一个索引作为Alter table mytable add index(title(16));
如果此列包含刺痛“这是我的标题”,其中包含16个字符和所有拉丁文。然后清除以下查询:
1)由于字符串包含16个字符,并且都是拉丁类型,所以它应该只存储16个字节,即使表字符集是utf8或其他。
2)16个字节的索引足以处理这16个字符的字符串或其他。
谢谢,
扎法尔
@Tim:谢谢你的解释性答案。 –
Joni,谢谢你的帮助。 –