1 つのクエリ専用のインデックスを作成しましたが、クエリの実行に 5 ~ 6 秒かかっていることがわかりました。次のクエリを使用して未使用のインデックスを取得しようとしましたが、そのインデックスが未使用のインデックス リストにリストされていることに気付きました。次のクエリのパフォーマンスを向上させる方法を提案してください。
クエリ where 句: WHERE parsedjobdescription IS NOT NULL AND is_updated != 0
インデックス: KEYidx_jobs_feed_parsedjobdescription_is_updated(
parsedjobdescription(700),
is_updated)
未使用のインデックス: SELECT * FROM sys.schema_unused_indexes;
列: parsedjobdescription varchar(50000) DEFAULT NULL is_updated tinyint(1) DEFAULT '0'
クエリの説明:
可能なキー: idx_jobs_feed_parsedjobdescription_is_updated、idx_is_updated
キー: idx_jobs_feed_parsedjobdescription_is_updated
キーの長さ: 703
行数: 1
フィルター: 50.0
P粉2327937652024-04-01 09:01:20
インデックスの 2 つの列の使用を避けるべき 3 つの事項:
IS NOT NULL - 範囲に達すると、残りの列は使用されません。
is_updated != 0 -- これも「範囲」です。
インデックスプレフィックスに問題があります。
リーリー テストが is_updated = 1
の場合、インデックスを反転する (または別のインデックスを追加する) ことができます。
リーリー