2017-02-01 96 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

相关问题