我的表中的每个条目都由一个长度为5-10个字符的单词唯一标识,并且我在该列中使用了TINYTEXT(10)。然而,当我尝试将其设置为PRIMARY键时,我会收到错误消息,提示缺少size
。
根据我对文档的有限理解,PRIMARY键的size
可用于简化检测唯一值的方式,即当前几个字符(由Size
指定)足以被视为唯一匹配项。在我的情况下,size
将从5到10不等(它们都是latin1编码,所以每个字符占用确切的字节+1用于长度)。两个问题:
- 如果我想将TINYTEXT用作PRIMARY键,应该指定哪个
size
?在这种情况下,最大可用大小是10吗?还是应该严格确切地指定size
,例如,如果我的键是6个字符长的单词,但我将PK的Size
指定为10,则它将尝试读取所有10个字符并失败并抛出异常? - 在性能方面,使用[TINY]TEXT作为PK有多糟糕?所有的谷歌结果都导致了"这很糟糕,你被解雇了"的言论和声明,但考虑到TINYTEXT的最大长度为255,我已经将其最大长度指定为10,这是否真的属实?
VARCHAR
,不要使用TINYTEXT
。而且不要使用前缀。句号。 - Rick James