質問

Webサイトのコンテンツは、MySQLデータベースに保存されます。コンテンツの99%が有効になりますが、一部(ユーザー、投稿など)は無効になります。ほとんどのクエリはASを終了します WHERE (...) AND enabled

フィールドに「有効」にインデックスを作成することをお勧めしますか?

役に立ちましたか?

解決

インデックスを作成するだけではあまり役に立たないでしょう enabled 1人。しかし、複合インデックスを作成すると便利かもしれません enabled 達成するために含まれています 最適化による注文.

たとえば、このようなものが一般的なクエリであった場合:

SELECT * FROM things WHERE c1='foo' AND enabled=1 ORDER BY c2

インデックスオン c1 一致する行を迅速に見つけることができますが、それでも別のステップでソートする必要があります c2.

インデックスオン c1, c2 順序付けがインデックスから行われることを許可し、クエリのソートを大幅に高速化する必要がありますが、 enabled インデックスでは、それを打ち負かすでしょう。 c1, それから 各行をスキャンして確認します enabled 結果をソートする前に c2.

インデックスがあった場合 enabled, c1, c2 また c1, enabled, c2, 、条件と順序がインデックスから直接取得できる全体を、より速い結果を得ることができます。

いつものように、それはあなたがしているクエリに依存します。あなたがすべき 説明 あなたの最も一般的な質問は、それが何をしているのかを確実にチェックします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top