我在StackOverflow question about it强中读到了MySQL EXPLAIN
的安全性,后来的一位 comments 者(@Tye)说:
人们想办法通过"解释"来更新信息.
这是我今天一直在思考的一个问题--is有没有办法用一条EXPLAIN EXTENDED ...
语句来实际更改/修改/更改数据库服务器中的数据?
EXPLAIN ANALYZE ...
在MySQL8.x+中似乎完全能够更改数据,因为它执行查询,因此如果语句更改了任何内容,它可能会产生影响.这就说得通了.但我的问题是关于一份原始的EXPLAIN EXTENDED ...
声明.
有什么方法可以用来更改数据吗?
我执行了很多不同的EXPLAIN ...
条语句,但我从来没有见过一条语句改变了数据……但我很好奇,是否有人比我更聪明,知道有什么方法可以做到这一点.在我看来,我想不出任何用EXPLAIN EXTENDED ...
语句实际更改数据的方法,因为:
- 最外层的查询从不执行,它只被分析/计划.因此,它不会对数据库服务器中的数据产生任何影响.
- 子查询may会被执行,因此可能会导致性能问题,但subqueries in MySQL are always SELECT statements...哪一个应该是安全的?