2016-04-21 16 views
-1

で単一のレコード選択クエリを最適化します。は、私は私が最適化する非常に単純なSQLクエリを持っているSQL

電子メール列にインデックスを追加する以外に、このクエリを高速化するためにできることはありますか?

「制限1」を追加すると高速化できますか?

"j"はアルファベットの早いので、ORDER BY email DESCはどうしたらいいですか?

+3

インデックスの追加は唯一のオプションです。なぜそれをしたくないのですか? –

+0

他に何ができるのか不思議です。 –

+1

LIMIT 1を追加する方が高速です。レコードIDが見つかると、早期にテーブル全体のスキャンを停止するためです。ただし、 'jon @ gmail.com'が見つからない場合は同じ速度になります。また、すべてのレコードを返すことはありません。 – quarterdome

答えて

0

emailのインデックスを作成します。それを速くする他の方法はありません。

正確な構文は、データベースエンジンによって異なります。電子メールがユニークであれば(これはユーザのテーブルと共通です)、インデックスを一意にすることもできます。

+0

quarterdomeありがとう、私はすでに質問に記載されているようにインデックスを追加することを認識しています –

0

インデックスを追加する代わりに、既にインデックスが作成されている「[email protected]」について知ることができます。おそらくあなたはUserID、AccountIDなどを持っていますか?

"プロダクション"の種類のクエリの場合は、インデックスを作成していないvarcharフィールドでの検索は、どのように最適化を試みても苦労します。

+0

私は検索のためだけに電子メールを持っています。 –

関連する問題