每个MySQL排序规则的每个字符的内存使用量

时间:2015-06-05 14:55:22

标签: mysql memory memory-management character collation

是否存在所有不同MySQL排序规则的良好捆绑文档?我的意思是概述还包括每个字符的内存使用量(动态/静态大小)和可以存储在每个单个排序规则中的字符类型?

1 个答案:

答案 0 :(得分:0)

"整理"对尺寸没有影响。 "字符集"确实。以下是一些答案:

  • ascii,binary,latin1,latin2等 - 1个字符= 1个字节。
  • big5,euc *,* jis,希伯来语等 - 1个字符= 2个字节。
  • utf8 - 1个字符= 1或2或3个字节。通常,英语为1个字节,其他西欧角色为2个,亚洲为3个。 More details
  • utf8mb4 - 1个字符= 1或2或3或4个字节。它是utf8,加表情符号和更多的汉字。

utf8mb4几乎可以存储世界上所有已知角色。它在我们发言时正在发展。

ascii(7位)是大多数(不是全部)其他字符集的子集。

Collation vs Character set

"所有不同的排序规则" - 答案正在发展,这取决于您运行的MySQL版本。运行SHOW COLLATION;。在5.6.12中,我看到了几十个字符集中的219个校对。

The Reference Manual Chapter

VARCHAR(10)将占用2-32个字节(长度为2个),具体取决于其中的文本。 ' 0123456789'只需要VARCHAR中的12个字节。

CHAR(10) utf8将始终消耗30个字节。使用CHAR和默认utf8是一个常见错误,从而浪费了大量空间。

您还想知道什么?