2011-09-20 72 views
0

我有一個建議功能,它採用用戶迄今爲止所寫的內容(如「abc」),並根據20k +項目列表提供建議。查詢數據庫或搜索數組之間的性能差異?

現在我不想要任何花哨的東西,它只是搜索以「abc」開頭的字符串,這就是我想要的。

我的問題是:如果項目列表是硬編寫在PHP數組中,針對SQL數據庫,性能是否存在巨大差異?

謝謝!

回答

1

是的,通過索引列在數據庫中搜索的複雜性應該是log(n),只需搜索數組將是n(除非在排序數組上使用binsearch)。無論如何,RMDBS會做得更快,因爲它強力優化了執行此類任務的代碼,並且PHP是腳本語言,使用各處的引用(非常慢)。

0

我想說這取決於。在大多數情況下,數據庫執行速度更快,但考慮到最昂貴的操作是磁盤IO,並且在php陣列中硬編碼數據可以消除從硬盤讀取數據的需求。因此,如果您的數據庫具有較高的碎片級別,則通過對陣列進行順序搜索可能會有更好的性能。
但是,當涉及到大量數據時,db會更好地完成這項工作。