EXPLAIN Output Format can avoid  ALL  by adding indexes that enable row retrieval from the table based on constant values or column values from earlier tables. The  Extra  column of  EXPLAIN  output contains additional information about how MySQL resolves the query. The following list explains the values that can appear in this column. Each item also indicates for JSON-formatted output which property displays the  Extra  value. For some of these, there is a specific property. The others display as the text of the  message  property. If you want to make your queries as fast as possible, look out for  Extra  column values of  Using filesort  and  Using temporary , or, in JSON-formatted  EXPLAIN  output, for  using_filesort  and using_temporary_table  properties equal to  true . The optimizer is able to use a descending index on an  InnoDB  table. Shown together with  Using index . For more information, see Section 8.3.13, “Descending Indexes” . This table is referenced as the child of  table  in a join that can be pushed down to the NDB kernel. Applies only in NDB Cluster, when pushed-down joins are enabled. See the description of the ndb_join_pushdown  server system variable for more information and examples. For a query such as  SELECT ... FROM  tbl_name , the table was empty. For  DELETE , some storage engines (such as  MyISAM ) support a handler method that removes all table rows in a simple and fast way. This  Extra  value is displayed if the engine uses this optimization. MySQL is looking for distinct values, so it stops searching for more rows for the current row combination after it has found the first matching row. The semijoin FirstMatch join shortcutting strategy is used for  tbl_name . This occurs for subquery optimization as a fallback strategy when the optimizer cannot use an index- lookup access method. The  HAVING  clause is always false and cannot select any rows. The  WHERE  clause is always false and cannot select any rows. MySQL has read all  const  (and  system ) tables and notice that the  WHERE  clause is always false. 1769 EXPLAIN Extra Information • Backward index scan  (JSON:  backward_index_scan ) • Child of ’ table ’ pushed join@1  (JSON:  message  text) • const row not found  (JSON property:  const_row_not_found ) • Deleting all rows  (JSON property:  message ) • Distinct  (JSON property:  distinct ) • FirstMatch( tbl_name )  (JSON property:  first_match ) • Full scan on NULL key  (JSON property:  message ) • Impossible HAVING  (JSON property:  message ) • Impossible WHERE  (JSON property:  message ) • Impossible WHERE noticed after reading const tables  (JSON property:  message )