ホームページ  >  に質問  >  本文

インデックスは利用可能ですが、まだ使用されていません - MySQL

1 つのクエリ専用のインデックスを作成しましたが、クエリの実行に 5 ~ 6 秒かかっていることがわかりました。次のクエリを使用して未使用のインデックスを取得しようとしましたが、そのインデックスが未使用のインデックス リストにリストされていることに気付きました。次のクエリのパフォーマンスを向上させる方法を提案してください。

クエリ where 句: WHERE parsedjobdescription IS NOT NULL AND is_updated != 0

インデックス: KEYidx_jobs_feed_pa​​rsedjobdescription_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_pa​​rsedjobdescription_is_updated、idx_is_updated

キー: idx_jobs_feed_pa​​rsedjobdescription_is_updated

キーの長さ: 703

行数: 1

フィルター: 50.0

P粉668019339P粉668019339184日前365

全員に返信(1)返信します

  • P粉232793765

    P粉2327937652024-04-01 09:01:20

    インデックスの 2 つの列の使用を避けるべき 3 つの事項:

    • IS NOT NULL - 範囲に達すると、残りの列は使用されません。

    • is_updated != 0 -- これも「範囲」です。

    • インデックスプレフィックスに問題があります。

      リーリー

    テストが is_updated = 1 の場合、インデックスを反転する (または別のインデックスを追加する) ことができます。 リーリー

    返事
    0
  • キャンセル返事