打印

[数据库] 如何高效的将5万个不同的随机数插入到数据库中?

高手们好:请教一个问题,



     我现在有一个需求:我现在需要生成5万个不同数据使用(mt_rand方法),然后插入到数据库中,以备后来使用。





现在的问题是:(1)   5万个数据,很多。放在数组中的话,占用内存很大,甚至内存不够用;

(2)如果不放入数组中的话,如何保证这5万个数据互不相同?




请高手指点。谢谢。
冬天来临,春天就不会远了。
SQL Server的话,直接用查询分析器执行就可

declare @i int
set @i=0
while @i<50000
begin
insert into test (xxx,xxx) values (CAST(rand()*10000 as int),'aaa')
set @i=@i+1
end
rand随机数还是存在重复的可能性吧?
绿野仙踪是说一个小女孩子回家的故事。。
我用的是mysql。
为了避免重复,我把生成的随机数暂时放在一个数组里面了。 以后再生成都去检查一下看看新生成的数是否已经存在。

但是这样的话,效率很低。(我测试已经出现问题:内存不够用或者是页面执行时间过长)


请高手指点。
谢谢。
冬天来临,春天就不会远了。

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
如果你用uuid的话,那肯定不会有重复了,所以不用考虑重复验证问题,直接入库就OK了。
绿野仙踪是说一个小女孩子回家的故事。。

TOP

你用一个有规律不随机的字符串 如 00001~50000

去和一个 随机的字符串相连

也就是  

00001+随机字符串
00002+随机字符串
00003+随机字符串
00004+随机字符串


.。。



50000+随机字符串


一定是不重复的。
http://Reallydo.Com 承接ASP程序各种定做修改服务。

TOP

6楼的方法很好,就算随机字符串相同,但因为前缀不同,所以不会重复
网络如此多娇 引无数小鸟竟折腰

TOP

把字段设置为unique 唯一约束  这样就保证了不重复

事务会报错,但仍然可能实现插入的操作吧.

我说的是mssql,没用过mysql不知道会不会不同
评词党,欢迎加入友链接 http://www.pingcd.com/

TOP