20

作为大学修订的一部分,我正在尝试回答以下问题:

在“员工”数据库中的表的至少一个属性上创建索引,您可以在其中使用 MySQL 的“解释”工具清楚地显示创建的好处(在术语或检索方面)和负面(在更新方面)有问题的索引。

在第一部分中,我在employees表上创建了一个索引,并在索引前后使用了以下查询来证明从检索的角度来看它是有益的:

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

该索引具有将访问的行从 300,000 减少到仅 63 的效果。

现在,我对如何做第二部分感到困惑。我希望能够将EXPLAIN命令与UPDATE一起使用,但它不起作用。

我试图分析的UPDATE查询如下:

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

这是回答问题的合适查询吗?我该如何进行分析。

提前谢谢了。

4

2 回答 2

39

EXPLAIN UPDATE通过比较 MySQL 的文档,存在于 MySQL 5.6而不是 MySQL 5.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 回答