论坛首页 Java企业应用论坛

超短的19位UUID,性能几乎翻倍提升

浏览 78093 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-07-25  
最近也有碰到相类似的问题,我采用UUID再加Hash算法,只需要8位(long)就可以存储了,要转成字符串的话,用Base58,实测好像是15~16个字符。不用这么长代码,几句话解决的问题,搞这么复杂。
0 请登录后投票
   发表时间:2014-07-25  
long id =1;

public synchorized int createID(){
   return id++;
}
0 请登录后投票
   发表时间:2014-07-25  
不重复造轮子也是有选择的,比如这篇博客http://polim.iteye.com/blog/2005680上面介绍的id生成方式,生成的是long类型的,还能保证数据库性能
0 请登录后投票
   发表时间:2014-07-25  
很不错的想法。
0 请登录后投票
   发表时间:2014-07-25  
能不能分析一下冲撞的概率?
0 请登录后投票
   发表时间:2014-08-01  
楼主的分析其实是有问题的,因为无法保证random真正的随机性。
0 请登录后投票
   发表时间:2014-08-03   最后修改:2014-08-03
criss 写道
最近也有碰到相类似的问题,我采用UUID再加Hash算法,只需要8位(long)就可以存储了,要转成字符串的话,用Base58,实测好像是15~16个字符。不用这么长代码,几句话解决的问题,搞这么复杂。

转hash已经大大提高了冲突概率,哈希一样的字符串很容易遇到。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics