2012-07-05 6 views
17

をEXPLAIN:MySQLは、私は私の大学のリビジョンの一部として、次の質問にお答えしようとしていますUPDATE

使用 「従業員のデータベースにテーブルの少なくとも1つの属性にインデックスを作成します。 へのMySQLのEXPLAINツールは、問題のインデックスの作成に関するメリット(更新または更新)とネガティブ(更新の意味は )を明確に示しています。

EXPLAIN SELECT * FROM employees WHERE birth_date = '1953-09-02'; 

このインデックスが持っていた:私は従業員テーブルにインデックスを作成し、それが検索の観点から有益だことを証明するためのインデックスの前と後に次のクエリを使用していた最初の部分については

アクセスした行を300,000から63に減らす効果。

ここで、2番目の部分を行う方法がわかりません。私は、EXPLAIN UPDATEとコマンドを使用することができますが、それはうまくいきません。次のように私は、分析しようとしている

UPDATEクエリは次のとおりです。

UPDATE employee SET first_name = 'first_name' WHERE birth_date = '1953-09-02'; 

は、この質問に答えるために、適切なクエリですとどのように私は分析行くのです。

事前に感謝します。

答えて

32

EXPLAIN UPDATEは、MySQL 5.6に存在しますが、MySQL 5.5では存在しません。 MySQL 5.6サーバーでこれを試しましたか?

+0

私は5.6に移行する選択肢がありません。 5.5に説明がないと、MySQL 5.5のアップデートが遅い理由を理解するにはどうすればよいでしょうか? –

+3

Explainプランは、5.5のSELECT文で機能します。実際に更新が遅い理由を知りたい場合は、更新のwhere句が遅いと仮定して、where句を使用してselect文を実行して、ヒントを与える必要があります。また、dbをクローンしてテスト用に5.6にアップグレードすることもできます。 –

+0

この質問のコメントも参考にしてください。 http://dba.stackexchange.com/questions/49788/query-execution-plan-for-mysql# –

10

のMySQL 5.6の参照DOC:のMySQL 5.6.3のようhttp://dev.mysql.com/doc/refman/5.6/en/explain.html

は、EXPLAINのために説明可能ステートメントを許可SELECTされ、DELETE、INSERT、REPLACE、およびUPDATE。 MySQL 5.6.3以前では、SELECTが唯一の説明文です。

関連する問題