我是全新的PHP & MySQL,我創建的一個函數需要訪問大型表或數據庫。我創建了數據庫,它目前在MySQL表中,我正在訪問沒有問題。該表的長度爲11,000行,有8列(所有文本長度不超過8個字符) - 它是靜態的,並且永遠不會改變。沒有特別的要求,我的用戶會點擊一個按鈕,觸發腳本訪問數據,比如500次或更多。所以一般情況下,將所有這些數據都包含在我的腳本中的一個大的「switch」或「if ... then」有條件的權限中,而不是打開和訪問數據庫連接數百甚至數千次?看起來這可能是等待發生的瓶頸。謝謝!初學者PHP/mySQL問題
回答
在你的情況下,我會保留數據庫,但在腳本開始時將整個內容加載到內存(數組)中。如果你想稍後優化,你可以使用一個非常簡單的延遲加載方案,根據請求讀取一批數據。也許有關於可能請求哪些行的提示。但保持簡單!
簡單...很像我自己!謝謝你的提示。 – 2010-03-16 11:25:57
沒有汗水。請投票贊成有用的答案,並選擇其中一個作爲「答案」。另外,編輯標題以總結問題,以便其他人可以找到它。 – Martin 2010-03-16 14:18:36
在閱讀你的問題時,似乎可能有很多空間用於計算改進。應用程序必須在如此龐大的一組數據上做了很多次的事情是非常罕見的。
但是,有一點需要注意的是,具有11,000行的數據庫實際上相當小。你的數據的總和應該是相當不重要的(3字節[最大] * 8個字符* 8字段* 11,000行=〜2 MB)。考慮在程序運行之前將數據庫預加載到內存中,並使用該數據庫而不是直接訪問數據庫。它應該以這種方式運行得更快。
訪問數據看起來好像很多次,但它是地圖對象的一個大型查找表 - 查看給定對象的北,南,東,西特定對象的名稱。我會嘗試你所說的將它加載到內存中。謝謝! – 2010-03-16 11:20:43
- 1. - 初學者問題
- 2. Node.js初學者問題
- 3. 初學者的TextMate問題
- 4. JSF/JSP - 初學者問題
- 5. 硒初學者問題
- 6. FreePascal初學者問題
- 7. Android UI初學者問題
- 8. android:layout_weight初學者問題
- 9. 初學者合金問題
- 10. Zend Sessions問題(初學者)
- 11. SQL oracle初學者問題
- 12. C++初學者問題
- 13. 初學者mod_rewrite的問題
- 14. Mongo初學者的問題
- 15. 一些初學者問題
- 16. Javacard初學者 - 問題
- 17. XSL初學者問題
- 18. time.localtime()問題初學者python
- 19. NoSQL的初學者問題
- 20. AspectJ初學者問題
- 21. jQuery初學者問題
- 22. 初學者的JavaScript問題
- 23. 蟒蛇初學者問題
- 24. Antlr初學者mismatchedtoken問題
- 25. Arduino初學者問題
- 26. 初學者 - PHP問題
- 27. node.js初學者問題
- 28. 初學者rails:submit_tag問題
- 29. WPF Storyboard初學者問題
- 30. MVC初學者問題
聽起來像是你需要爲自己測試的東西嗎?爲了便於維護,我會親自使用數據庫。 – Dolph 2010-03-15 14:38:49
我同意Dolph! :D – Shrayas 2010-03-15 14:51:07
我已經有了數據庫的工作,並將它的性能與數組進行比較。感謝您的建議。 – 2010-03-16 11:22:42