2012-11-26 65 views
1

我試圖讀取一個有10000行的excel文件。讀完每個單元格後,我的應用程序應該檢查數據庫中是否存在讀取值。這是完美的工作,但問題是由於頻繁的數據庫檢查,應用程序似乎很慢。任何人都可以提出更好的替代方案嗎?我使用mysql的codeigniter框架。避免頻繁的數據庫連接

感謝和問候,

Tismon

+2

向我們展示你的代碼,請! =) – MikroDel

+0

您是否試圖查看問題出在哪裏?通過插入回顯語句來顯示代碼正在運行的哪個位,或者使用分析器,您可以計算出什麼是緩慢的部分。在你的情況下,它可能是數據庫查詢,從Excel讀取,數據庫連接.... –

+0

沒有看到任何代碼,我不能確定我的建議。然而,我會做的是查詢數據庫一旦堅持在數組中的所有結果,並檢查對數組的值。但我可能會誤解你的問題。 –

回答

0

您可以將它從Excel文件讀取數據。

假設您在Excel文件中有一列「郵政編碼」。然後製作一組郵政編碼,這可能會導致10個唯一郵政編碼的列表。然後,您只需對每個郵政編碼的數據庫進行10次查詢,並將返回的列表與Excel文件中的分組數據進行比較。

1

讀10000行不應該是這樣的資源密集型,我認爲真正減慢你的應用程序的速度是檢查整個數據庫每個單元讀取。所以你應該避免這種情況。

第一件事是我的頭: 添加更新(日期/時間)字段到每個行中,並且只檢查整行,如果更新的日期/時間比您上次檢查更新。

無論如何顯示更多細節將讓我們更好地幫助你。

再談談你的應用程序需要檢查什麼或什麼是您的Excel文件包含

+0

OP不需要知道是否必須更新一行。他需要知道它是否存在,所以一個新的列沒有任何意義。 – Kai

+0

那麼更新後的字段或單元格基本上可以知道該行是否未被選中,或者如果已經更改過,那麼應用程序需要再次檢查它,而不是知道它是否需要更新。因爲我不知道這種情況100%但我猜他的問題是,他可能會更新Excel文件,也許10行,但是再次檢查整個文件(每個單元格)並執行數據庫查詢 – aleation

+0

對不起仍然沒有合理。如果您可以評估您的新專欄,那麼您已經查詢過它。應該如何減少查詢? – Kai