锁定老帖子 主题:超短的19位UUID,性能几乎翻倍提升
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2014-07-25
最近也有碰到相类似的问题,我采用UUID再加Hash算法,只需要8位(long)就可以存储了,要转成字符串的话,用Base58,实测好像是15~16个字符。不用这么长代码,几句话解决的问题,搞这么复杂。
|
|
返回顶楼 | |
发表时间:2014-07-25
long id =1;
public synchorized int createID(){ return id++; } |
|
返回顶楼 | |
发表时间:2014-07-25
不重复造轮子也是有选择的,比如这篇博客http://polim.iteye.com/blog/2005680上面介绍的id生成方式,生成的是long类型的,还能保证数据库性能
|
|
返回顶楼 | |
发表时间:2014-07-25
很不错的想法。
|
|
返回顶楼 | |
发表时间:2014-07-25
能不能分析一下冲撞的概率?
|
|
返回顶楼 | |
发表时间:2014-08-01
楼主的分析其实是有问题的,因为无法保证random真正的随机性。
|
|
返回顶楼 | |
发表时间:2014-08-03
最后修改:2014-08-03
criss 写道 最近也有碰到相类似的问题,我采用UUID再加Hash算法,只需要8位(long)就可以存储了,要转成字符串的话,用Base58,实测好像是15~16个字符。不用这么长代码,几句话解决的问题,搞这么复杂。
转hash已经大大提高了冲突概率,哈希一样的字符串很容易遇到。 |
|
返回顶楼 | |