MySQL - 使用String作为主键

我已经在Stack Overflow上看到了类似的帖子,但不太满意。 假设我提供Web服务。 http://foo.com/SERVICEID SERVICEID是用于引用服务的唯一字符串ID(基本64,大写/大写+数字),类似于URL缩短器服务为URL生成ID的方式。 我理解比较字符串与整数有固有的性能问题。 但我很好奇如何最大限度地优化String类型的主键。 我正在使用MySQL,(目前正在使用MyISAM引擎,但我承认并不了解所有引擎的差异)。 谢谢。 为了我的目的更新,字符串实际上只是一个base62编码的整数,所以主键是一个整数,因为你不可能超过bigint的大小,所以使用其他任何东西都没有多大意义(对我而言)特殊用例)     
已邀请:
使用CHAR或VARCHAR作为主键没有任何问题。 在许多情况下,它肯定会占用比INT更多的空间,但在许多情况下,它是最合乎逻辑的选择,甚至可以减少所需的列数,从而提高效率,避免需要单独的ID字段。 例如,国家代码或州缩写已经具有标准化的字符代码,这是使用基于字符的主键而不是另外构成任意整数ID的好理由。     

要回复问题请先登录注册