2009-11-10 378 views

回答

5

回答此問題的最佳方法是執行基準測試。

+1

可能是對的 - 我會試試看。謝謝! – 2009-11-10 06:03:38

1

雖然你應該自己嘗試一下,但我會假設有一個合適的索引,並得出結論認爲數據庫可以比PHP更快地完成任務,因爲它可以完成所有工作。

但是,這可能歸結爲網絡延遲,解析SQL vs PHP的速度,或DB負載和內存使用百分比。

0

測試它 - 分析簡單的東西應該是微不足道的。

另外,請記住,數據庫旨在處理這種類型的任務,所以他們自然會擅長它。即使是一個天真的二進制搜索,也只會有17個比較,所以25k元素不是很多。真正的問題在於排序,但在過去的60多年中已被征服死亡。

0

這取決於。在MySQL中,你可以使用索引,這將提高速度,但使用PHP,你不需要通過網絡發送信息(如果另一臺服務器上的MySQL數據庫)。

0

我首先想到的是用數組搜索更快。但是,在另一邊它實際上取決於幾個因素:

  1. 您databasa表是如何設計的(是否正確使用索引等)
  2. 查詢是如何構建
  3. 數據庫通常相當優化對於這樣的搜索。
  4. 你在數組上做什麼類型的搜索?有幾種類型的搜索你可以做。最慢的是直接搜索,你通過每一行檢查一個值,更快的方法是二分搜索。

我推測你正在比較直接在數據庫上執行的select語句和php中的數組搜索。不是

+0

嘿尼古拉,這正是我要做的 - 基本上將從數據庫上的選擇語句獲取的字符串與從用戶輸入獲得的字符串進行比較。我將它與PHP中的array_search函數進行比較 – 2009-11-10 06:12:34

0

MySQL的構建是爲了有效地對大量數據進行排序和搜索,比如這樣。當您搜索關鍵字時尤其如此,因爲MySQL將索引表中的主鍵。

1

需要記住的一件事:如果你的搜索對數據庫來說是CPU密集型的,那麼即使它沒有那麼快,也可能值得用PHP來做。縮放時,添加Web服務器通常比數據庫服務器更容易。