ここにMySQLドキュメントで説明されているように:
フィルター処理された列は、テーブル条件によってフィルター処理されるテーブル行の推定パーセンテージを示します。つまり、rowsは調べた行の推定数を示し、rows×Filtered / 100は前のテーブルと結合される行数を示します。MySQL 5.7.3より前では、EXPLAIN EXTENDEDを使用すると、この列が表示されます。MySQL 5.7.3の時点では、拡張出力はデフォルトで有効になっており、EXTENDEDキーワードは不要です。
まだわかりません。ここで「フィルタリング」の意味は何ですか?このコラムからどのような情報を入手できますか?
たとえば、クエリを開始すると、一部のクエリには100が表示され、他のクエリには18または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 |
この値から結論付けることができる主なポイントは何ですか?
それは、列が18%だけをフィルタリングしたということですか?または、スコアが低いほど、インデックス/クエリの品質が向上しますか?
MySQL 5.7を使用しています