Extra
- Using inde
表示查询只需要使用索引就可以获取所需的数据,不需要回表操作。这通常是性能较好的情况。 - Using where
表示查询使用了WHERE子句来过滤结果集。查询将先根据索引进行扫描,然后再使用WHERE条件过滤结果。 - Using temporary
表示查询需要使用临时表来存储中间结果。这通常意味着查询需要进行复杂的计算或操作,可能需要更多的资源。 - Using filesort
表示查询需要对结果集进行排序操作,并且无法使用索引进行排序。这时,MySQL将使用文件排序算法来对结果进行排序,可能需要更多的资源。 - Using join buffer (Block Nested Loop)
表示查询中使用了连接操作,并且连接操作使用了连接缓冲区(join buffer)。这通常是性能较差的情况,可能需要优化查询语句或表结构。 - Impossible WHERE
表示查询的WHERE子句的条件永远不可能为真,因此查询不会返回任何结果。 - Select tables optimized away
表示查询不需要访问任何表,因为可以通过优化直接得到结果。
rows
rows字段表示MySQL估算需要扫描的行数,以获取查询所需的数据。这是一个估计值,并不一定准确,但它可以帮助你了解查询可能需要处理的数据量。通常情况下,这个数值越小越好,因为扫描的行数越少,查询的性能就可能越高。
例如,如果rows的值为1000,那么MySQL估计需要扫描1000行数据以获取查询结果。
filtered
filtered字段表示符合查询条件的数据所占的百分比。这是一个估计值,表示在扫描的行数中,有多少行的数据满足查询的条件。这个数值越大越好,因为这意味着查询只需要处理更少的数据。
例如,如果rows的值为1000,filtered的值为50%,那么估计有500行数据满足查询的条件。
通过结合rows和filtered字段的值,你可以更好地了解查询的性能。如果rows的值很小,同时filtered的值很大,那么查询的性能可能会比较高。相反,如果rows的值很大,同时filtered的值很小,那么查询的性能可能会比较低,可能需要考虑优化查询语句或表结构。
标签:rows,Using,explain,查询,需要,MySQL,filtered,解析 From: https://www.cnblogs.com/kiper/p/17738865.html