2014-01-11 50 views
2

我正在爲類似於Google即時搜索的輸入框創建自動完成功能。php + mysql - 性能 - 即時自動完成響應

我需要爲自動填充功能提供即時響應。我正在執行該查詢的表中包含數十萬條記錄,而且還有數百列。例如:500,000條記錄,120列。

所以,我有兩個問題:

  1. 執行查詢最可能的速度。
  2. 在搜索框的自動完成下拉菜單中顯示結果的快速響應。

順便說一句,我使用的Joomla框架,可能會導致一些放緩。

回答

2
  1. 在一些必要的sql字段上創建索引。
  2. 根據按下的按鍵數量(以及如果需要,按2鍵之間的時間)使用延遲。
  3. 添加您自己的緩存邏輯。
  4. 限制查詢
+0

此外,請確保您將查詢的結果限制爲10個或20個結果。 –

1

自動完成可以當用戶輸入是長在-至少3個字符被觸發。

1

如果有可能考慮使用的NoSQL數據庫MongoDB的一樣或卡桑德拉此表,因爲他們是爲那種數據的取得,尤其是如果該數據將增長的結果。要將數據從服務器傳輸到客戶端,請使用json。