Wir haben einen Index speziell für eine Abfrage erstellt, aber ich habe festgestellt, dass die Ausführung der Abfrage 5 bis 6 Sekunden dauert. Ich habe versucht, den nicht verwendeten Index mithilfe der folgenden Abfrage abzurufen, und habe festgestellt, dass der Index in der Liste der nicht verwendeten Indexe aufgeführt ist. Bitte schlagen Sie vor, wie Sie eine bessere Leistung für die folgende Abfrage erzielen können.
Where-Klausel abfragen: WHERE parsedjobdescription IS NOT NULL AND is_updated != 0
Index: KEYidx_jobs_feed_parsedjobdescription_is_updated(
(
parsedjobdescription(700),
is_updated)
parsedjobdescription(700),
)SELECT * FROM sys.schema_unused_indexes;
Unbenutzte Indizes: SELECT * FROM sys.schema_unused_indexes;parsedjobdescription varchar(50000) DEFAULT NULL is_updated tinyint(1) DEFAULT '0'
Spalte: parsedjobdescription varchar(50000) DEFAULT NULL is_updated tinyint(1) DEFAULT '0'
Abfrage erklären:
Mögliche Schlüssel: idx_jobs_feed_parsedjobdescription_is_updated, idx_is_updated
Schlüssel: idx_jobs_feed_parsedjobdescription_is_updated
Schlüssellänge: 703
Anzahl der Zeilen: 1
🎜Gefiltert: 50,0🎜
禁止使用索引的两列的三件事:
IS NOT NULL - 一旦达到范围,其余列将不会被使用。
is_updated != 0 -- 这也是一个“范围”。
索引前缀有问题。
如果测试是
is_updated = 1
,您可以翻转索引(或添加另一个索引):