Wie hier in den MySQL-Dokumenten beschrieben :
Die gefilterte Spalte gibt einen geschätzten Prozentsatz der Tabellenzeilen an, die durch die Tabellenbedingung gefiltert werden. Dies bedeutet, dass Zeilen die geschätzte Anzahl der untersuchten Zeilen und Zeilen × gefiltert / 100 die Anzahl der Zeilen anzeigen, die mit vorherigen Tabellen verknüpft werden. Vor MySQL 5.7.3 wird diese Spalte angezeigt, wenn Sie EXPLAIN EXTENDED verwenden. Ab MySQL 5.7.3 ist die erweiterte Ausgabe standardmäßig aktiviert und das Schlüsselwort EXTENDED ist nicht erforderlich.
Ich verstehe es immer noch nicht. Was bedeutet hier "gefiltert"? Welche Informationen können wir aus dieser Spalte erhalten?
Wenn ich beispielsweise mit der Abfrage beginne, werden in einigen Abfragen 100 und in anderen 18 oder weniger als 100 angezeigt.
+-------------+-------+--------+---------+---------+------+----------+
| select_type | table | type | key | key_len | rows | filtered |
+-------------+-------+--------+---------+---------+------+----------+
| PRIMARY | a | range | search | 4 | 174 | 18.00 | <--
| PRIMARY | b | eq_ref | PRIMARY | 4 | 1 | 100.00 |
| PRIMARY | c | ALL | PRIMARY | 4 | 1 | 100.00 |
Was ist der wichtigste Punkt, auf den wir aus diesem Wert schließen können?
Sagt es, dass die Spalte nur 18% gefiltert hat? Oder ist der Index / die Abfrage umso besser, je niedriger die Punktzahl ist?
Ich benutze MySQL 5.7
type
undextra
(das ist eine Kunst für sich allein); du könntest ohne lebenfiltered
, aber nicht ohnetype
.