我將一個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 關注
- 623 瀏覽
添加回答
舉報
0/150
提交
取消