首页 新闻 会员 周边 捐助

大量数据插入和更新速度问题

0
悬赏园豆:30 [已关闭问题] 关闭于 2016-12-09 14:45

要从多个excel中读取数据来填充一张空的person表,person表有name, sex, age, address...等字段,字段固定。

所有excel行数相同,相同行号的内容视作同一个person对象的属性,每个excel包含字段中的若干项,excel字段可能重复。

实际情况和这个例子差不多,我之前的做法是按照一个excel去insert,其它的excel执行update,现在由于数据量增大,性能下降非常严重,请问有什么提升性能的好办法?

问题补充:

数据库使用的是sqlite, 使用的是内存数据库模式,但是和磁盘数据库模式差别不大。

灵枢的主页 灵枢 | 菜鸟二级 | 园豆:297
提问于:2016-12-05 09:59
< >
分享
所有回答(4)
0

如果是sqlserver不是有自带的导入功能么?

Daniel Cai | 园豆:10424 (专家六级) | 2016-12-05 10:11

需要频繁的重复上面的操作,全程非人工操作,数据库用的也是SQLite

支持(0) 反对(0) 灵枢 | 园豆:297 (菜鸟二级) | 2016-12-05 10:42
0

SQLite? 为什么不换个SQL Server或MySQL试下?

风浪 | 园豆:2996 (老鸟四级) | 2016-12-05 11:04
0

你的数据量有多大?首先有几步:1.先把数据读到内存里。2.可以通过定时器分批插入与更新数据,每次5000条差不多。3.更新与插入的sql使用批量操作(不要一条一条的,那样很慢)。

曹庆源 | 园豆:243 (菜鸟二级) | 2016-12-05 13:48

数据量大概400万,已使用事务提交。

支持(0) 反对(0) 灵枢 | 园豆:297 (菜鸟二级) | 2016-12-05 15:01
0

性能下降 —— 这跟一条一条插入有什么关系。

数据量大还用sqlite~~慢是必然的。这就像你吃饼,你开始吃吃得快,然后连续吃了几个,然后你用后面吃饼的速度说你吃饼的速度不行 —— 你都撑着了能吃得快吗?——当然性能肯定下降了。所以你无论是一口一口的吃,还是两个两个的吃 —— 吃到一定程度,你肯定撑,撑起了肯定吃得慢。

花飘水流兮 | 园豆:13617 (专家六级) | 2016-12-05 17:10

客户端软件,不需要网络,所以选择sqlite

支持(0) 反对(0) 灵枢 | 园豆:297 (菜鸟二级) | 2016-12-06 13:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册