2017-02-01 5 views
0

私は自分のウェブサイトにユーザーを検索し、ユーザーの名字、姓、電子メールを表示する検索機能を用意しています。それを行う最速の方法は何ですか?MySQLデータベースから行とデータを取得する最速の方法は?

私のテーブルには、次のとおりです。

id first name last name email 

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

私は万のように、他の多くの行/ユーザーを持っています。

たとえば、ユーザーは「bob」を検索します。 "bob"のデータベースを検索して各ユーザーの姓、名字、電子メールを表示する最も速い方法は何ですか?

+5

'firstname = 'bob''。 'firstname'のインデックスを使う方が速くなります。 –

+0

@GordonLinoffはい、ありがとうございますが、ユーザーが 'lastname'を検索したらどうなりますか? – jasonmoqio

+5

検索条件として使用される列は、インデックスの候補です。インデックスの数が増えるほどINSERTが遅くなるため、インデックスのすべてを意味するわけではありません。 – RiggsFolly

答えて

0

テーブルから必要な列のビューを作成することができます。ここにすべての列を含める必要はありません。

次に、ビューの検索列にインデックスを作成できます。これにより、ビューを使用してより高速に検索できますが、プライマリ・テーブルに対するINSERT問合せには影響しません。

+0

ビューでは、クエリーでコードを直接使用するよりも高速ではありません。これは、クエリーでビューを使用するときにmysqlが実行する文字列になるためです。それは単にクエリを短くします(クエリの実行時間ではなくテキストの長さで)。しかし、もちろん、インデックスは作成する必要があります。 – Solarflare

関連する問題