WYJAŚNIJ załatwi sprawę, jeśli używasz MySQL w wersji 5.6 lub nowszej.
explain update whatever;
Jeśli zapytanie jest prawidłowe, pokazuje plan wykonania. W przeciwnym razie zwraca błąd składni.
Jeśli używasz słabszej wersji MySQL, widzę kilka opcji:
- Zalecana opcja :Przygotuj testową bazę danych, która odzwierciedla Twoją produkcyjną bazę danych przynajmniej pod względem struktury . Idealnie byłoby wypełnić je danymi testowymi, aby sprawdzić, czy zapytanie jest nie tylko poprawne pod względem składniowym; ale że działa zgodnie z oczekiwaniami .
- Uruchom zapytanie w zakresie TRANSAKCJI który jest natychmiast cofany.
- Uruchom wersję zapytania, która została nieznacznie zmodyfikowana, aby dopasować BRAK WIERSZY.
Na przykład:
update table set col1 = @val1 where col2 = @val2;
Staje się:
update table set col1 = @val1 where (col2 = @val2) and 1=0;
Tak więc, jeśli używasz wersji 5.6 lub nowszej, EXPLAIN
sztuczka jest zgrabna. Jeśli nie, opcje 2 i 3 z listy również są fajnymi sztuczkami. Ale generalnie powinieneś zacząć rozwój serwer z Twoim w fazie rozwoju zapytania mimo to.