我的 MySQL 表中有一个类型字段,char(1)
它基本上只能有值 m 或 f。其当前排序规则设置为 ut8_unicode_ci。我在考虑是否应该或不应该将排序规则更改为更简单的东西,例如拉丁语,因为从未使用过完整的 utf8 字符集 - 只有字符 m 或 f。那会改变什么吗?
问问题
295 次
2 回答
2
排序规则是定义字符应该如何排序的规则。想象一个字母序列 - A 是第一个字母,Z 是最后一个字母(英文)。排序规则A
是先到Z
后的规则,它还有助于定义字符的比较方式。简而言之 - 整理与您的情况无关。
你应该做的是将该字段设置为 tinyint,直到 MySQL 稍后提供布尔类型。这样,您将绕过任何时候可能出现的任何字符集问题,尽管在您的示例中它们并不是真正重要的。
于 2011-06-14T13:03:46.290 回答
2
我怀疑它是否会产生任何可衡量的差异,但如果m
并且f
是唯一可能的值,那么utf8_bin
应该产生与(或大多数其他排序算法)完全相同的结果。utf8_unicode_ci
并且由于该排序规则进行了简单的二进制比较,因此它肯定是最快的排序规则。
于 2011-06-14T13:06:53.083 回答