快速插入1--1亿得所有数据
要求就是 快速 。 哈哈哈哈
12 个解决方案
#1
分不够再加,哈哈哈
#2
还有不要担心我硬盘的大小这种低级问题;
也不要问我建这表要干嘛;就是要快速
哈哈哈
也不要问我建这表要干嘛;就是要快速
哈哈哈
#3
写个存储过程,里面写个循环添加数据
http://bbs.51cto.com/thread-1115702-1-1.html
http://bbs.51cto.com/thread-1115702-1-1.html
#4
用buck吧
#5
modis 数据吗?
#6
批量就很快吧。你的数据是什么数据?
1亿10000,10000,分成小段一次插一万一万次就插完了,如果一次10万1000次就可以了。
1亿10000,10000,分成小段一次插一万一万次就插完了,如果一次10万1000次就可以了。
#7
insert into table(md5_value)
select null from table
用原表
指数据增长
最后批量更新md5_value
select null from table
用原表
指数据增长
最后批量更新md5_value
#8
估计是暴力破解的套路
曾做过一个案例,数据12T,记得是到7位组合,纯数字+字母是到8位,几年了,有点忘了
曾做过一个案例,数据12T,记得是到7位组合,纯数字+字母是到8位,几年了,有点忘了
#9
刚试了一下 1Y 条数据,批量写入,第一列为数字,第二列为该数字的 MD5 ,总用时 15 分钟。
不知道,能不能达到楼主认为的这种“快”
不知道,能不能达到楼主认为的这种“快”
#10
这1亿数据已经存在了?MD5也加密了?这数据是什么格式?还是自己模拟生成这批数据?
id和MD5在数据库外部先加密
去索引
恢复模式为简单模式
bcp导入
id和MD5在数据库外部先加密
去索引
恢复模式为简单模式
bcp导入
#11
这个速度已经很快了,弱弱问下如何写入的?
#12
-- 代码我还真留了一份,数据我就不贴了,你自己跑跑看
create table test(id int, md5 varchar(32))
create table temp(id int primary key not null)
go
declare @c int =0 ;
insert into temp
select top 100000
row_number() over(order by (select 1)) id
from sys.columns a, sys.columns b,sys.columns c
while @c < 1000
begin
begin transaction
insert into test
select
@c * 100000 + id,
convert(varchar(32),hashbytes('MD5',ltrim(id)),2) from temp
set @c = @c + 1
commit
end
go
select count(*) rscount from test
go
drop table test, temp
go
#1
分不够再加,哈哈哈
#2
还有不要担心我硬盘的大小这种低级问题;
也不要问我建这表要干嘛;就是要快速
哈哈哈
也不要问我建这表要干嘛;就是要快速
哈哈哈
#3
写个存储过程,里面写个循环添加数据
http://bbs.51cto.com/thread-1115702-1-1.html
http://bbs.51cto.com/thread-1115702-1-1.html
#4
用buck吧
#5
modis 数据吗?
#6
批量就很快吧。你的数据是什么数据?
1亿10000,10000,分成小段一次插一万一万次就插完了,如果一次10万1000次就可以了。
1亿10000,10000,分成小段一次插一万一万次就插完了,如果一次10万1000次就可以了。
#7
insert into table(md5_value)
select null from table
用原表
指数据增长
最后批量更新md5_value
select null from table
用原表
指数据增长
最后批量更新md5_value
#8
估计是暴力破解的套路
曾做过一个案例,数据12T,记得是到7位组合,纯数字+字母是到8位,几年了,有点忘了
曾做过一个案例,数据12T,记得是到7位组合,纯数字+字母是到8位,几年了,有点忘了
#9
刚试了一下 1Y 条数据,批量写入,第一列为数字,第二列为该数字的 MD5 ,总用时 15 分钟。
不知道,能不能达到楼主认为的这种“快”
不知道,能不能达到楼主认为的这种“快”
#10
这1亿数据已经存在了?MD5也加密了?这数据是什么格式?还是自己模拟生成这批数据?
id和MD5在数据库外部先加密
去索引
恢复模式为简单模式
bcp导入
id和MD5在数据库外部先加密
去索引
恢复模式为简单模式
bcp导入
#11
这个速度已经很快了,弱弱问下如何写入的?
#12
-- 代码我还真留了一份,数据我就不贴了,你自己跑跑看
create table test(id int, md5 varchar(32))
create table temp(id int primary key not null)
go
declare @c int =0 ;
insert into temp
select top 100000
row_number() over(order by (select 1)) id
from sys.columns a, sys.columns b,sys.columns c
while @c < 1000
begin
begin transaction
insert into test
select
@c * 100000 + id,
convert(varchar(32),hashbytes('MD5',ltrim(id)),2) from temp
set @c = @c + 1
commit
end
go
select count(*) rscount from test
go
drop table test, temp
go