6

我不记得曾经看到过从控制台使用准备好的语句的方法,并且不知何故不认为运行解释查询被认为是来自 API 的准备好的语句会得到我想要的。

这与我的这个老问题有关

我主要对 MySQL 感兴趣,但也会对其他 DB 感兴趣。

4

2 回答 2

2

根据我进行的简短研究,我看不到获得它的方法。理想情况下,一旦提供了变量,就会生成真正的执行计划。如果不存在常量,查找表可以快速消除实际运行的查询。理想的执行计划将考虑发生的频率。我的理解是,MySQL 至少用于在准备语句时准备执行计划以验证表达式。然后,当您执行它时,它会生成另一个解释计划。

我相信解释计划暂时存放在 MySQL 中的一个表中,但在使用后很快就被删除了。

我建议在 MySQL 内部列表中询问。

祝你好运,

雅各布

于 2009-08-24T17:54:48.067 回答
1

“你不能”

https://dev.mysql.com/doc/internals/en/prepared-stored-statement-execution.html

这基本上说在编译时为准备好的语句创建的执行计划没有被使用。在执行时,一旦绑定了变量,它就会使用这些值来创建一个新的执行计划并使用该执行计划。

这意味着如果您想知道它将做什么,您可以获取您打算准备的查询,给它您将绑定到它的值,以及EXPLAIN PLAN完整的查询。

于 2018-10-19T14:54:04.650 回答