EXPLAIN MySQL 5.6以降を実行している場合は、このトリックを実行します。
explain update whatever;
クエリに問題がない場合は、実行プランが表示されます。それ以外の場合は、構文エラーを返します。
下位バージョンのMySQLを実行している場合は、いくつかのオプションが表示されます。
- 推奨オプション :本番データベースを少なくとも構造的にミラーリングするテストデータベースを用意します。 。理想的には、クエリが構文的に正しいだけではないことを確認するために、テストデータを入力します。ただし、期待どおりに機能する 。
- トランザクション> すぐにロールバックされます。
- 行なしに一致するようにわずかに変更されたバージョンのクエリを実行します。
例:
update table set col1 = @val1 where col2 = @val2;
なる:
update table set col1 = @val1 where (col2 = @val2) and 1=0;
したがって、5.6以降を実行している場合は、EXPLAIN
トリックはきちんとしています。そうでない場合は、リストのオプション2と3も巧妙なトリックです。 しかし、一般的には開発を打つ必要があります 開発中のサーバー とにかくクエリ。