MySQL EXPLAIN UPDATE

jim*_*jim 19 mysql sql database query-optimization

作为我大学修订的一部分,我想回答以下问题:

在"employees"数据库中的表的至少一个属性上创建索引,在该数据库中使用MySQL"EXPLAIN"工具清楚地显示创建的好处(以术语或retreival)和否定(在更新方面)有问题的指数.

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

EXPLAIN SELECT * FROM employees WHERE birth_date = '1953-09-02';
Run Code Online (Sandbox Code Playgroud)

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

现在,我很难过如何做第二部分.我希望能够使用带有UPDATEEXPLAIN命令,但它不适用于此.

我正在尝试分析的UPDATE查询如下:

UPDATE employee SET first_name = 'first_name' WHERE birth_date = '1953-09-02';
Run Code Online (Sandbox Code Playgroud)

这是一个合适的查询来回答问题,我该如何分析.

提前谢谢了.

Ray*_*Tau 35

EXPLAIN UPDATE通过比较MySQL的文档,存在于MySQL 5.6中但不存在于MySQL 5.5中.你在MySQL 5.6服务器上试过吗?

  • 解释计划适用于SELECT语句中的5.5.如果你真的想知道为什么更新很慢,假设更新中的where子句很慢,尝试在select子语句上做一个解释计划,where子句应该给你一些提示.此外,您可以克隆数据库并升级到5.6以进行测试. (3认同)

and*_*ndy 10

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是唯一可解释的语句.