Jak opisano tutaj w dokumentach MySQL :
Filtrowana kolumna wskazuje szacunkowy procent wierszy tabeli, które będą filtrowane według warunków tabeli. Oznacza to, że wiersze pokazują szacowaną liczbę zbadanych wierszy, a rzędy × filtrowane / 100 pokazuje liczbę wierszy, które zostaną połączone z poprzednimi tabelami. Przed MySQL 5.7.3 ta kolumna jest wyświetlana, jeśli używasz EXPLAIN EXTENDED. Począwszy od MySQL 5.7.3, rozszerzone wyjście jest domyślnie włączone, a słowo kluczowe EXTENDED nie jest konieczne.
Nadal nie rozumiem. Jakie jest znaczenie słowa „filtrowane” tutaj? Jakie informacje możemy uzyskać z tej kolumny?
Na przykład, kiedy zacznę odpytywać, niektóre zapytania pokażą 100, a inne pokażą 18 lub mniej niż 100.
+-------------+-------+--------+---------+---------+------+----------+
| 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 |
Jaki główny punkt możemy wyciągnąć z tej wartości?
Czy to mówi, że kolumna przefiltrowała tylko 18%? A jeśli im niższy wynik, tym lepszy indeks / zapytanie?
Używam MySQL 5.7
type
iextra
(co samo w sobie jest sztuką); możesz żyć bezfiltered
, ale nie beztype
.