当前位置:首页 » 数据仓库 » 同时向数据库写大量
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

同时向数据库写大量

发布时间: 2023-05-15 01:05:53

❶ Mysql数据库 写入大量数据如何实现

//最快的方法10000记录23MS
publicstaticvoidinsert(){
//开时时间
Longbegin=newDate().getTime();
//sql前缀
Stringprefix="INSERTINTOtb_big_data(count,create_time,random)VALUES";
try{
//保存sql后缀
StringBuffersuffix=newStringBuffer();
//设置事务为非自动提交
conn.setAutoCommit(false);
//Statementst=conn.createStatement();
//比起st,pst会更好些
PreparedStatementpst=conn.prepareStatement("");
//外层循环,总提交事务信吵次数
for(inti=1;i<=100;i++){
皮启//第次提交步长
for(intj=1;j<=10000;j++){
//构建sql后缀
suffix.append("("+j*i+",SYSDATE(),"+i*j
*Math.random()+"),");
}
//构建完整sql
Stringsql=prefix+suffix.substring(0,suffix.length()-1);
//添加执行sql
pst.addBatch(sql);
//执行操作
pst.executeBatch();
//提交事务
conn.commit();
//清空上一次添加的数据
suffix=newStringBuffer();
}
//头等连接
燃坦如pst.close();
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
//结束时间
Longend=newDate().getTime();
//耗时
System.out.println("cast:"+(end-begin)/1000+"ms");
}

❷ 如何向数据库快速的写入百万条数据

如何向数据库快速的写入百万条数据
现在我的处理方式是读取原数据库表的所有数据,大毁或概有一罩余带百万条吧,然后放到一个数组里面,循环向目标数据库写数据(两个数据库之物芦间的数据迁移,表结构不同,我是写的php脚本来查询导入的),一开始速度还可以,但是现在几乎一秒钟一条了

❸ 如何向一个sql sever 数据库表中插入大量数据

  1. 一次性插入大量数据,只能使用循环,

  2. 如:游标,while 循环语句

  3. 下面介绍While 循环插入数据,

  4. SQL 代码如下:

  5. IF OBJECT_ID('dbo.Nums') IS NOT NULL

  6. DROP TABLE dbo.Nums;

  7. GO

  8. CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);

  9. DECLARE @max AS INT, @rc AS INT;

  10. SET @max = 5000000;

  11. SET @rc = 1;

  12. INSERT INTO Nums VALUES(1);

  13. WHILE @rc * 2 <= @max

  14. BEGIN

  15. INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;

  16. SET @rc = @rc * 2;

  17. INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;

  18. --以上函数取自Inside SQL Server 2005: T-SQL Query一书。

  19. INSERT dbo.Sample SELECT n, RAND(CAST(NEWID() AS BINARY(16))) FROM Nums

❹ 如何往SQL数据库中快速插入大量数据

有declare语句是可以的
比如创建了一个表a:
create table a
( aid int identity(1,1) not null Primary(Key),
adata int)

插入数据:
declare @n int
set @n = 0
while @n < 2000
begin
set @n = @n+1
insert into a(adata) values(@n)
end

自己改改就可以了