MySQL的不可思议的整数主键

时间:2011-10-20 15:01:00

标签: mysql guid uuid

我正在研究一个使用整数作为多个表的主键的数据库。我想让主键相对难以猜测 - 它们不需要超紧,只是不能在数百个中增加整数。由于我使用现有数据将其改造为现有模式,因此更改主键(integer)的数据类型是不可行的。我想知道的是如何最好地生成ID。到目前为止,我可以想到这些选项:

  1. 使用UUID()生成UUID并将其转换为整数。
  2. 保留一个单独的表,其中包含随机整数,并使用一个过程从事务中的表中选择和删除一个。
  3. 使用UNIX时间戳和一个随机的n位数字,例如CONCAT(UNIX_TIMESTAMP(),SUBSTRING(RAND() FROM 3 FOR 6))
  4. 我也对其他建议持开放态度。

    我很感激你能提供的任何想法。

    谢谢, 罗斯

1 个答案:

答案 0 :(得分:4)

你为什么这样做?你会搞砸数据的物理存储方式。如果您需要通过URL进行查找,请使用辅助索引并使其成为GUID。