今天写了个简单的PHP函数,用来生成按时间增长的全局唯一主键。这类主键的作用主要是在分布式环境中保证每条数据能够有一个唯一标识,同时又有一定的自增长性以提高索引效率。当然也可以用来掩人耳目,毕竟一个简单的int类型的自增ID的话,很容易让人猜到你的数据量有多少了。

分布式环境下数据主键的生成方法其实是蛮多的,比如使用Mysql之类的自增ID,只需要设置好自增步长和起始值就可以满足基本要求了,还有如目前流行的文档型数据库MongoDB就提供了一个MongoId的实现,可以在客户端直接生成长度为24的自增长型全局字符串主键。今天写的这个PHP函数就是参考MongoId的算法实现的,不需要安装MongoDB扩展也可以使用。