Comme décrit ici dans les documents MySQL :
La colonne filtrée indique un pourcentage estimé de lignes de tableau qui seront filtrées par la condition du tableau. En d'autres termes, les lignes indiquent le nombre estimé de lignes examinées et les lignes × filtrées / 100 indiquent le nombre de lignes qui seront jointes aux tables précédentes. Avant MySQL 5.7.3, cette colonne s'affiche si vous utilisez EXPLAIN EXTENDED. Depuis MySQL 5.7.3, la sortie étendue est activée par défaut et le mot clé EXTENDED n'est pas nécessaire.
Je ne comprends toujours pas. Quelle est la signification de "filtré" ici? Quelles informations pouvons-nous obtenir de cette colonne?
Par exemple, lorsque je commence à interroger, certaines requêtes afficheront 100 et d'autres afficheront 18 ou moins que 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 |
Quel est le principal point que nous pouvons conclure de cette valeur?
Est-il dit que la colonne n'a filtré que 18%? Ou si plus le score est bas, plus l'indice / la requête est bon?
J'utilise MySQL 5.7
type
etextra
(qui est un art en soi); vous pourriez vivre sansfiltered
, mais pas sanstype
.