20

私は大学の改訂の一環として、次の質問に答えようとしています。

'employees'データベースのテーブルの少なくとも1つの属性にインデックスを作成します。ここで、MySQL'EXPLAIN'ツールを使用して、作成のメリット(更新の観点から)とネガティブ(更新の観点から)を明確に示します。問題のインデックスの。

最初の部分では、employeesテーブルにインデックスを作成し、インデックスの前後に次のクエリを使用して、検索の観点から有益であることを証明しました。

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';

これは、質問に答えるのに適したクエリですか。また、分析を行うにはどうすればよいですか。

よろしくお願いします。

4

2 に答える 2

39

EXPLAIN UPDATEMySQLのドキュメントを比較すると、 MySQL 5.6には存在しますが、MySQL5.5には存在しません。MySQL 5.6サーバーでそれを試しましたか?

于 2012-07-05T20:13:49.943 に答える
11

Mysql 5.6のリファレンスドキュメント:http://dev.mysql.com/doc/refman/5.6/en/explain.html

MySQL 5.6.3以降、EXPLAINで許可されている説明可能なステートメントは、SELECT、DELETE、INSERT、REPLACE、およびUPDATEです。MySQL 5.6.3より前では、SELECTが唯一の説明可能なステートメントです。

于 2014-03-03T10:33:52.330 に答える