社区
MS-SQL Server
帖子详情
百万条记录的表中插入数据的问题?
qi7
2005-08-19 07:10:25
表有主键,所以不能写入重复主键的记录:
1.直接插入;
2.查询是否存在主键相同的记录,如果不存在则插入,如果存在则退出;
上面的2种方式哪个用的时间短?
...全文
182
8
打赏
收藏
百万条记录的表中插入数据的问题?
表有主键,所以不能写入重复主键的记录: 1.直接插入; 2.查询是否存在主键相同的记录,如果不存在则插入,如果存在则退出; 上面的2种方式哪个用的时间短?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
缪军
2005-08-20
打赏
举报
回复
我是用ADO做的连接, 我发现就算和数据库的连接断开了, ado照样连接正常;
楼主能说明白点吗?
缪军
2005-08-20
打赏
举报
回复
无论主键是自动编号还是别的,或者是唯一索引,服务器都进行维护
重复记录是不可能添加成功的,我觉得只要在客户端捕获这种错误
然后根据自己的需要处理或是忽略就可以了,我就是这样做的
一是服务器的维护始终是在后台运行的,不利用是一种浪费
二是作为安全的代码,错误处理也必须要写得,只不过多写一行
Case或Catch而已,无论从代码量和执行效率上都比较好
qi7
2005-08-20
打赏
举报
回复
主键是 编号+时间 构成的;
主要是想缩短每个数据的处理时间; 我是用线程解析数据,然后入库的. 在日志中发现, 有的数据从开始处理到处理结束最长可能达到10s, 而正常情况下不到1s应该处理完毕.
还想问一下,怎么判断程序和数据库的连接是否正常?
我是用ADO做的连接, 我发现就算和数据库的连接断开了, ado照样连接正常;
请大家回答,我可以加分.
iwl
2005-08-20
打赏
举报
回复
看你的主键是怎么样构成的,如果是自动编号,newid()就不会重复,如果是有一定的规则,则要检查
缪军
2005-08-19
打赏
举报
回复
楼主的情况在我的项目中也有,我用的
是第一种方法,在客户端调用存储过程逐个添加
记录,错误处理部分只忽略主键(或者唯一索引)
重复的错误号
我感觉这样是利用服务器自维护功能实现的
应该比另外做查询判断来得快,无论你要添加的
记录是否满足约束条件,服务器总是要进行这样的
维护步骤的,它实现并不知道要插入的数据是否合法
就像一个安全的函数无论如何都要对输入的参数进行
验证一样
个人拙见,望专家指正
zlp321002
2005-08-19
打赏
举报
回复
--方式2是必须的!!要考虑主键相同的记录!
MorningTea
2005-08-19
打赏
举报
回复
1.直接插入;--遇到重复的会中断你的程序,往下如果不是重复的可能也跑不下去啦
2.查询是否存在主键相同的记录,如果不存在则插入,如果存在则退出;
上面的2种方式哪个用的时间短?--因为有主键,所以呢搜寻速度会加快,所以判断时间不会太长,倒是因为主键的存在影响更新,插入,这个第一种方法也有!
netcoder
2005-08-19
打赏
举报
回复
具体说说怎么回事情吧
MySQL DML 语言(
插入
、更新与删除
数据
)
Re: MySQL DML 语言(
插入
、更新与删除
数据
)=======================# DML
数据
操作语言 包括动词:INSERT、UPDATE、DELETE 等等 它们分别用于添加、修改和删除
表中
的行(
数据
) #
插入
、更新与删除
数据
MySQL中提供了功能丰富的
数据
库管理语句,包括有效地向
数据
库中
插入
数据
的 INSERT 语句,更新
数据
的UPDATE语句以及当
数据
不在使用时删除
数据
的DELETE 语句等。 # 高阶 DML 操作 将查询结果
插入
到新表(相当于表复制功能) 根据另一张表的条件,更改本表
记录
根据另一张表的条件,删除本表
记录
-------------------------------------------------------------
MySql
插入
百万级
数据
的几种方法
MySQL
插入
大批量
数据
, MySQL
插入
百万级
数据
, MySQL
表中
插入
百万
数据
MySQL 批量
插入
,如何不
插入
重复
数据
?根据条件 MyBatis不
插入
重复
数据
MySQL 批量
插入
,如何不
插入
重复
数据
?根据条件 MyBatis不
插入
重复
数据
.这里用的是Mybatis,批量
插入
的一个操作,通过联合唯一索引(tenantId,projectId,editVid),已经加了唯一约束;重复
数据
中针对不需要或者需要修改的字段,可以通过if进行判断处理(IF(逻辑判断, 为真结果, 为假结构)。如上,这样在批量
插入
时,如果存在同一租户-项目-编辑版本下相同
数据
的话,是不会再
插入
了的。当然这是个非常浅显的例子,实际项目中也有很多场景,这就不再探索。
插入
百万
数据
优化
背景 终于遇见了百万级
数据
的项目,很简单的一个单表查询,索引加上去之后还是20多秒。没办法只得周末的时候研究一下百万级
数据
查询的优化。首先第一步就是先
插入
百万级的
数据
。我刚开始使用的方法是存储过程,想着存储过程会快一些,也更通用一些。没想到500万的
数据
既然
插入
了2小时!!! 于是继续百度,看文章,分析,总结,思考。 总算确定了实现的方式:多值表
插入
(insert values 值集1,值集2)、多sql一起提交。 1、一个sql语句拼10个value(根据mysql最长能支持的sql长度和自己的查询字段长
Oracle
数据
库分批次向A
表中
插入
B
表中
数据
业务简介:A表是B表的明细表,现需求是B表有上百万
记录
,在A
表中
插入
B表的相关
记录
。 准备工作:oracle
数据
库,
数据
库工具pl\sql,存储过程写在包中。 实现思路: 3.1 获取B表总
数据
量V_CU_COUNT,设置一次提交量V_SIZE为5000,计算出总页数V_PAGE := CEIL(V_CU_COUNT / V_SIZE);,起始索引V_INDEX为1; 3.2 每5000条数...
MS-SQL Server
34,576
社区成员
254,587
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章