如何高效的将5万个不同的随机数插入到数据库中?
高手们好:请教一个问题,我现在有一个需求:我现在需要生成5万个不同数据使用(mt_rand方法),然后插入到数据库中,以备后来使用。
[b][color=Red]现在的问题是:(1) 5万个数据,很多。放在数组中的话,占用内存很大,甚至内存不够用;
(2)如果不放入数组中的话,如何保证这5万个数据互不相同?[/color][/b]
请高手指点。谢谢。 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。
为了避免重复,我把生成的随机数暂时放在一个数组里面了。 以后再生成都去检查一下看看新生成的数是否已经存在。
但是这样的话,效率很低。(我测试已经出现问题:内存不够用或者是页面执行时间过长)
请高手指点。
谢谢。 如果你用uuid的话,那肯定不会有重复了,所以不用考虑重复验证问题,直接入库就OK了。 你用一个有规律不随机的字符串 如 00001~50000
去和一个 随机的字符串相连
也就是
00001+随机字符串
00002+随机字符串
00003+随机字符串
00004+随机字符串
.。。
50000+随机字符串
一定是不重复的。 6楼的方法很好,就算随机字符串相同,但因为前缀不同,所以不会重复 把字段设置为unique 唯一约束 这样就保证了不重复
事务会报错,但仍然可能实现插入的操作吧.
我说的是mssql,没用过mysql不知道会不会不同
页:
[1]