当前位置:首页 » 数据仓库 » 数据库单表插入数据很慢大字段
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库单表插入数据很慢大字段

发布时间: 2022-04-30 02:50:14

1. 数据库插入数据或更新数据的时候反应很慢,怎么优化

查询速度慢,跟你的插入没多大关系
大表sdy_db_testb的C_testa字段建索引;
把select a.*,b.c_xname from sdy_db_testb a left join sdy_db_testc b on 1=1 and b.c_testa=a.c_testa改成
select a.*,b.c_xname from sdy_db_testc a left join sdy_db_testb b on 1=1 and b.c_testa=a.c_testa;
即左边的为小表,这样就快 了;
不知道你的需求是否要把大表的数据都取出来
如果是都需要取出来的话,慢是必然的!因为要读的块数无法减少,IO开销你怎么优化都是无用的

2. 数据条数太多,插入到数据库有延迟,怎么解决

1.我们往数据库中导入的数据通常是有固定的模板的,也就是有列头,但是可能excel中的一条数据分布存储在不同的数据表中,那么我们怎么来导入了,我们可以在类文件中直接拼接sql语句插入,这样做的话我认为比较麻烦。我的做法是:在数据中建一个中间表暂且叫做Temp表跟excel中列一一对应,其中表中多加state列用来标识数据验证失败还是成功的(0代表数据没有问题,-1代表有问题)、failReason记录导入失败原因,然后再添加一个配置文件来做excel列和数据表的映射。 2.要导入的数据通常要做验证,那些不符合导入规则的数据时不允许或者不能导入的。我把数据分两步来验证,一部分在代码段验证,一部分在数据库验证。至于怎么分那就自己去根据情况分析了。我是把诸如字符长度限制,正则表达式规则限制等放 在代码段验证,把诸如数据库中字典值是否存在等要访问数据库的验证放在数据中验证,这样的话就可以减少访问数据库的次数。把再客户端验证过的数据,不管是通过的不同过的都插入到temp表中,只是state值不同。 3.然后怎么把插入temp中数据分别插入到不同的数据表中了,大家一定想到了触发器,没有错,我用的就是after触发器,在我把excel中的数据插入到temp表中的时候,那么就会触发after触发器,在触发器中对插入的数据进行处理,如果插入的数据state值为-1,代表在代码端的验证就没有通过,那么就不需要进行下一步处理了,如果state值为0,那么在触发器中接着处理,比如检测字典值在字典表中存不存在等,如果不满足要求就把temp表中的当前插入的记录state值改成-1,把校验失败原因更新到failReason字段中,不再处理。如果一切校验都没有问题的话,那么就编写插入语句,把数据插入到不同的表中去。 4.数据导入完成了,那么那些有问题数据怎么办了?把它查询出来生成一个按原模板后加一列“失败原因”导成excel文件,其实就是state值为-1的那些记录,然后返回给用户查看。 通过以上步骤之后那么整个导入功能就完成了,以上只是一种思路,望大家完善。 本站技术原创栏目文章均为中睿原创或编译,

3. 请教,往数据库中插入记录某张表速度很慢,而且越来越慢是何原因

3万条不算太多,没什么问题,如果没条件用SQLSERVER,可以用ACCESS。但是要注意每次使用后关闭数据连接,否则会越来越慢

4. mysql数据库插入数据很慢

1.逐步排除法,输出几个重要步骤的执行时间,找出导致代码执行时间慢的真正原因,看看是读取excel慢还是插入数据库慢或者其他原因

5. mysql 一张有近一百个字段的表,通过主键查询数据非常慢,查询一条数据需要2秒左右。怎么作优化

1张表100个字段。。。。分表,然后用表外连接查询可以调高查询效率,也可以用复合查询,不过复合查询效率没有外连接查询效率高,但是sql语句写起来方便。如果数据量不是上百万级别的,推荐用复合查询。

6. 如何提高sql数据库对插入比较长的字符串的速度

首先你要分析出来插入时候慢的原因,
1、磁盘速度慢?
2、表里字段创建的索引过多?
3、表在其他的视图中存在,并且在视图里创建了索引?
4、插入到的表有触发器 或者该数据库有触发器,引起了其他操作?

综上所述,找到原因,解决原因,应该就能很快解决的
若你是SQL SERVER,可以用事件探查器监视一下,在该语句执行时的情况,会有助于你分析问题

7. mysql数据库插入数据很慢,咋回事

如果原表很大,插入数据会非常慢,建议插入到临时表,然后用一个语句(INSERT
INTO
XXX
SELECT
*
FTOM
TMPXXX)把数据插入,这样速度会快一点,如果想更快,需要减少不必要的索引,如果大批量的插入,可以插入前删除索引,插入后重新建立。

8. sql相同数据库的不同表,一个插入数据正常,一个非常慢的原因

先看下是插的慢,还是查的慢,把你的insert改成select,别的不变,看下效率如何,如果查的很快,插得慢你看下空间和表结构状况;如果查的也慢,那么你先看下表的数据量,然后 考虑表分区,或者建索引。
还要知道你是什么数据库

9. access 单个数据表十几万条记录 插入很慢

有几种提供参考:
1如果只有一个用户,改为单机版
2另建新数据库,原数据库做被查用,把常用的数据放在新数据库里,旧的保留极少用的。
3改用SQL等大型数据库系统

10. SQL数据库添加记录变慢了,怎么办

1、删除日志
2、将数据表进行修正一下,每月考勤结束后,将数据移到相应的数据备份表中,这样数据表中只保留没有进行考勤汇总的数据,即当前数据。

其他,可能与你的系统设计有关。

不知你添加数据是如何添的
好像不应该用rsquery.open

而应该用:con0.execl("insert into ...."),这样是没有问题的。