问题描述
|
我的MysqL表中有一个类型为“ 0”的字段,基本上只能包含值m或f。当前排序规则设置为ut8_unicode_ci。我在考虑是否应该将排序规则更改为更简单的拉丁字母,因为从未使用过整套utf8字符-仅使用m或f字符。那会改变一些东西吗?
解决方法
我怀疑这将不会产生任何可测量的差异,但是如果if1ѭ和
f
是唯一可能的值,那么utf8_bin
应产生与utf8_unicode_ci
完全相同的结果(或与此相关的大多数其他排序算法)。而且由于该排序规则进行了简单的二进制比较,因此它必然是最快的。
, 排序规则是定义字符应如何排序的规则。想象一下一个字母序列-A是第一个字母,Z是最后一个字母(英语)。排序规则是说“ 5”是第一个,而“ 6”是最后一个,这也有助于定义如何比较字符。简而言之-整理与您的情况无关。
您应该将该字段设置为tinyint,直到MySQL稍后提出布尔类型。这样一来,您就可以绕开随时出现的任何字符集问题,尽管在您的示例中,它们并不是真正重要的问题。