1. ホーム
  2. sql

[解決済み] ブーリアンフィールドのインデックス作成

2023-07-08 08:33:15

質問

これはおそらく本当に愚かな質問ですが、データベーステーブルのブール値フィールドにインデックスを付けることに大きな利点があるのでしょうか?

よくある状況として、quot;soft-delete" のような、非アクティブとしてフラグが立てられ、それゆえほとんどのクエリに WHERE deleted = 0 のような一般的な状況を考えると、そのフィールドを単独でインデックス化することは有用でしょうか、それとも別のインデックスで他のよく検索されるフィールドと結合すべきでしょうか?

どのように解決するのですか?

いいえ。

検索され、高い選択性/カーディナリティを持つフィールドにインデックスを付けます。ブール値フィールドのカーディナリティは、ほとんどすべてのテーブルで無視されます。どちらかといえば、書き込みが遅くなります (ほんのわずかな量ですが)。

すべてのクエリがソフト削除を考慮するならば、あなたはそれをクラスタ化インデックスの最初のフィールドにするかもしれませんね?