EXPLAIN funguje, pokud používáte MySQL 5.6 nebo vyšší.
explain update whatever;
Pokud je dotaz v pořádku, zobrazí se plán provádění. V opačném případě vrátí chybu syntaxe.
Pokud používáte nižší verzi MySQL, vidím několik možností:
- Doporučená možnost :Připravte si testovací databázi, která zrcadlí vaši produkční databázi alespoň ve struktuře . V ideálním případě jej naplňte testovacími daty, abyste ověřili, že dotaz není pouze syntakticky správný; ale že to funguje podle očekávání .
- Spusťte dotaz v rozsahu TRANSAKCE která se okamžitě vrátí zpět.
- Spusťte verzi dotazu, která je mírně upravena tak, aby odpovídala ŽÁDNÝM ŘÁDKŮM.
Například:
update table set col1 = @val1 where col2 = @val2;
Stává se:
update table set col1 = @val1 where (col2 = @val2) and 1=0;
Pokud tedy používáte verzi 5.6 nebo vyšší, EXPLAIN
trik je trefný. Pokud ne, možnosti 2 a 3 ze seznamu jsou také elegantní triky. Obecně byste ale měli narážet na vývoj server s vaším ve vývoji stejně.