我将一个excel的表格导入成gridview后,想将其再次导入到数据库中。
可是我想数据库中如果有这个excel里的数据的话(不是全部)。那么我就对其进行更新而不是插入。这里就有一个问题。加入我导入的excel表中有几万条数据,而数据库中也有几万条数据,那么我Gridview(导入excel表后)里每行都得与数据库里的几万条数据对比看是否有相同,再决定是插入还是更新。那么几万乘以几万次,这样的话会不会使这个系统的处理速度很慢(或者说完成操作都得十几分钟),有什么方法能对其进行优化,或者技术能对其进行有选择的对比而不是每个都对比一次。
请对这方面有经验或者做过类似的程序员帮帮忙。。。
7 回答
UYOU
TA贡献1878条经验 获得超4个赞
你先把数据库里的对比的键值用一个hash存起来,这个过程是O(n)复杂度,再把你要add 或update的数据的进行对比,这边的复杂度是O(m),这样的一个操作过程的复杂度最低只能做到O(M+N),只要不做成O(M*N)的复杂度就可以了,时间慢的应该是装箱拆箱的过程,用多线程来做吧,因为整个执行的时间比较,为了怕出现问题断电,误断的问题导致重新对比操作,最好用消息队列来做。
- 7 回答
- 0 关注
- 576 浏览
添加回答
举报
0/150
提交
取消