MySQL,我的场景的最佳字符集?

时间:2013-12-02 17:12:00

标签: mysql

在设计数据库的过程中,我有以下列,我不确定使用哪个字符集:

id :20个ascii字符但所有字母都很小。我可以利用这个事实来节省空间吗?我会在此基础上进行搜索,作为主键。

关于:应支持utf8,最多256个字符。我永远不会在此基础上进行排序,也不会基于此进行搜索。我应该使用utf8_general_ci还是utf8_unicode_ci?

1 个答案:

答案 0 :(得分:0)

您需要使用INT列作为PRIMARY KEY。 MySQL在所有派生索引中都使用它,因此如果选择非INT密钥,则会有很大的开销需要处理。

如果您需要一个不同的辅助“标识符”列,例如20个字符,请将该列定义为VARCHAR并为其指定UNIQUE索引约束。

您的描述中没有任何内容违背使用UTF-8作为编码的合理默认值。您正在讨论的两个选项是 collat​​ion ,它具体指的是排序顺序,字符等效和大/小写映射等内容。那些更主观。

您预计需要存储多少条记录?除非你正在处理数以亿计的这些事情,否则它甚至不值得为字节而烦恼。