2017-02-01 97 views
0

我在我的網站上有一個搜索功能,用於搜索用戶並顯示用戶的名字,姓氏和電子郵件。什麼是最快的方法呢?從MySQL數據庫獲取行和數據的最快方法?

我的表是:

id first name last name email 

0  john   bay   [email protected] 
1  bob   lof   [email protected] 
2  bob   mask   [email protected] 

我有很多其他的行/用戶,如10,000。

例如,用戶搜索「bob」。搜索數據庫「bob」並顯示每個用戶的名字,姓氏和電子郵件的最快方法是什麼?

+5

'where firstname ='bob''。用'firstname'索引會更快。 –

+0

@GordonLinoff是的謝謝,但如果用戶搜索'lastname'? – jasonmoqio

+5

任何列將被用作搜索條件是索引的候選者。更多的索引你有一個更慢的INSERT將是,所以這並不意味着索引的所有 – RiggsFolly

回答

0

您可以爲表格中的所需列創建視圖,不需要在此處包含所有列。

CREATE VIEW vw_yourTable as SELECT *required columns* FROM #YourTable 

然後,您可以在您的視圖的搜索列上創建索引。這將使您能夠更快地使用視圖進行搜索,但是,它不會影響主表上的INSERT查詢。

+0

視圖不會比直接在查詢中使用代碼更快,因爲這實際上是mysql在查詢中使用視圖時執行的操作。它只是縮短了您的查詢(文本長度,而不是查詢執行時間)。但你當然應該創建索引。 – Solarflare

相關問題