【发布时间】:2020-06-16 22:06:34
【问题描述】:
在 MySQL 中,我需要存储长度为 21(google 或 facebook uid)的主键,其大小比 int(最大值为 2147483647)和 BIGINT(最大值为 9223372036854775807)大得多,
我还阅读了有关 varchar 的信息,并意识到它的性能低下和 AUTO_INCREMENT 问题。
这种情况下最好的主键是什么?
【问题讨论】:
-
为什么不创建自己的 ID(如果足够,则为 INT AUTO_INCREMENT)并为另一个具有足够长度的 VARCHAR 键保留第二列?
-
这是一个很好的解决方案,但是我如何需要将这个id作为查询的主id,有什么办法吗?
-
就像您使用任何其他搜索键一样(没有真正的区别)。像
SELECT * FROM sometable WHERE google_id = :value这样的东西。所有 FK 和其他查询仍然可以使用正常的数字 id 或任何其他所需的搜索条件。