在这种情况下,所选择的整理是否重要?

时间:2011-06-14 12:51:40

标签: mysql utf-8 collation latin

我的MySQL表中有char(1)类型的字段,基本上只能有m或f值。它当前的排序规则设置为ut8_unicode_ci。我在想是否应该或不应该将校对更改为像拉丁语这样简单的东西,因为从来没有使用完整的utf8字符集 - 只有字符m或f。这会改变什么吗?

2 个答案:

答案 0 :(得分:2)

排序规则是定义字符应如何排序的规则。想象一下字母顺序 - A是第一个字母,Z是最后一个字母(英文)。排序规则表明A是第一个,Z是最后一个,它还有助于定义字符的比较方式。简而言之 - 整理与你案件中的任何事情无关。

你应该做的是将该字段设置为tinyint,直到MySQL稍后提出布尔类型。这样你就可以绕过任何可能出现的任何字符集问题,尽管在你的例子中它们并不是真正重要的事情。

答案 1 :(得分:2)

我怀疑它会产生任何可衡量的差异,但如果mf是唯一可能的值,那么utf8_bin应该完全相同结果为utf8_unicode_ci(或大多数其他整理算法)。由于该校对进行简单的二元比较,因此它必然是最快的。