生成 uuid 的最佳实践? php 或 MySql

Best Practice to generate uuid ? php OR MySql

生成 UUID(主键)的最佳做法是什么 让它在 Mysql 结束时生成或 让它在 PHP end

处生成

做一些性能测试我发现在 php 结束时生成它有点快

但是做了一些 Google 我发现很多人正在练习它在 MySQL 结束时生成 http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram

那么对于不断增长的数据,这样做的正确方法是什么?

你可以尝试一个很好的PHP class Pure PHP UUID Generator

  • 克隆存储库(或者将 UUID.php class 复制到您的 php 文件中..)
  • 直接使用静态方法class

示例:

UUID::v5('1546058f-5a25-4334-85ae-e68f2a44bbaf', 'SomeRandomString');

如果您希望插入来自不同应用程序的行,那么通过数据库生成 UID 是最安全 方法,因为实现是集中的,当然不会在应用程序之间改变。

假设您决定用另一种语言创建 API。然后您需要用该语言实现相同的生成器。这种其他语言实现您依赖于生成密钥数据的函数的方式可能有所不同,这会导致重复的密钥。

如果您只打算在自己的服务器上插入来自 PHP 的行,那么在应用程序或数据库中生成 UID 并不重要。

安全并不总是正确。或者实用。权衡您的预期用例的利弊,然后从那里开始。

如果复制数据库,使用本机数据库 UUID 函数可能会导致问题。同时,我会确认任何预先编写的 UUID 生成器都经过测试,以确认 UUID 的最低有效字节比最高有效字节变化得更快(以适应数据库索引集群)。