19

Is there a way to explain a DELETE query with MySQL like we can explain a SELECT query?

Gaël J
  • 11,274
  • 4
  • 17
  • 32
user217631
  • 1,278
  • 5
  • 18
  • 33

3 Answers3

39

"As of MySQL 5.6.3, EXPLAIN provides information about SELECT, DELETE, INSERT, REPLACE, and UPDATE statements. Before MySQL 5.6.3, EXPLAIN provides information only about SELECT statements."

from http://dev.mysql.com/doc/refman/5.6/en/explain.html

Niro
  • 776
  • 8
  • 15
10

Wouldn't the plan for that be the same as for a select 1 where.... with the same condition as your delete query?

The 1 is so the optimizer isn't forced to pull any unneeded columns, it can only look at the columns it needs for the filtering conditions.

Blindy
  • 65,249
  • 10
  • 91
  • 131
1

No, that's not quite right. A DELETE would also remove index entries from any associated indexes (mysql erroneously calls them 'keys'). There are also delete triggers to consider as well.

Jonathan
  • 11
  • 1
  • As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Nov 01 '22 at 09:42