需要从另一个数据集中导入一定数据进入sqllite, 我是在 dll 中开单线程处理, 线程唤醒后开启sqllite 事务, 然后导入数据。 共12 张表, 线程每次唤醒导入一张表, 导入数据有两种方法:
1. 直接根据NewData 的 PK name 和 value 先 删除sqllite 中数据, 再直接插入
2. 先根据Newdata PK name& value 在sqllite 中select , 如果有数据 则 update 没有则 insert
方法一:
Insert 语句平均执行: 301.8861 ms (平均 23 个字段) 116 次 共 35.018 sec
Delete语句平均执行: 310.2870 ms 120 次 共 37.234 sec
方法二:
select 语句平均执行: 3.4736 ms 116 次 共 0.402 sec
Update&Insert 平均: 243.3451 ms 120 次 共 29.201 sec
性能差别怎么这么大, 看来sqllite 的事务 还是很多秘密 ....
不过 sqllite 和 oracle 比还是好慢啊!
本文通过两种不同方法比较了SQLite数据库在导入数据时的性能差异。一种方法是先删除后插入,另一种则是选择性更新或插入。结果显示,后者在执行速度上明显更快。
1018

被折叠的 条评论
为什么被折叠?



