ばかげているように聞こえるかもしれませんが、複数の WHERE 句を指定すると、mysql クエリが高速になりますか、それとも遅くなりますか?
どちらが速いでしょうか?
例 1:
SELECT id FROM table WHERE username='user'
例 2:
SELECT id FROM table WHERE username='user' AND country='US' AND email='email@gmail.com'
ばかげているように聞こえるかもしれませんが、複数の WHERE 句を指定すると、mysql クエリが高速になりますか、それとも遅くなりますか?
どちらが速いでしょうか?
例 1:
SELECT id FROM table WHERE username='user'
例 2:
SELECT id FROM table WHERE username='user' AND country='US' AND email='email@gmail.com'
まあ、それはすべて、インデックスが定義されているかどうかにかかわらず、検索している列によって異なります。
例 1 では、username
パフォーマンスを向上させるためにインデックスが必要です。
ALTER TABLE tableName INDEX (username)
例 2 では、3 つの列にもインデックスが必要です。
ALTER TABLE tableName INDEX (username, country, email)
テーブルのインデックスの作成方法など、いくつかの要因に依存しますが、ほとんどの場合、結果セットを制限する方がすべての結果を返すよりも高速です。他のすべてと同様に、両方をベンチマークしてから決定します。