获取随机唯一ID
admin 发布于:2009-07-09 18:19:00
阅读:loading
在网上找到UUID这个class,有人说可以产生系统随机并且唯一的ID,我就测试了一下,网数据库里面插入了100万条记录,嘿嘿,结果果然没有令我失望,上面的图片可以说明这100万条数据没有重复的。
总结出了以下些经验:
1、代码的质量(运行性能):修改过后的代码基本4s、5s就完成了10000条数据的插入;(这个表里面有2个字段,一个事自动增长id,一个事产生的随机ID),20000条数据基本是11s、12s执行完;50000条数据就是44s、47s执行完毕,效率还不错吧。
2、在执行大批量的新增时,起初用的是:
/**
*数据库新增
*/
public void add(){
//执行添加随机ID的方法
preparedStatement.executeUpdate();
}
/**
*测试新增
*/
public static void main(String args[]){
A a = new A();
for(int i=0;i<20000;i++){
a.add();
}
}
总结:效率低的很呀;因为这是:循环执行方法。
后来用改进了一些:
在新增方法里面:
public void add(){
StringBuffer str = new StringBuffer();
for(int i=0;i<20000;i++){
String sql = " insert into 表名 values (' " + 随机ID, + " ' ) ; ";//随机20000次
str.append(sql);
}
preparedStatement.executeUpdate();
}
这种做法的好处是循环20000次字符串(sql语句),再对字符串进行处理。效率嘛就是上面说的咯。
随机唯一ID,有时候会有用,而这里的随机产生ID非常好用,也简单:
UUID uuid = UUID.randomUUID();
OK了!
@20220111 补充
上述示例内容在十多年后的今天看来纯属自娱自乐了,如今UUID的生成在JDK8提供了更为线程安全的版本,而随意唯一ID的生成更推荐使用MyBatis Plus中增强的IdWorker实现,其提供了雪花等多种唯一ID的生成方式。