使用Oracle,在查询中使用常量值可能会影响数据库设计的执行计划。在Oracle中,我总是会得到包含占位符的查询的执行计划
在MySQL中,如果我在查询中有占位符,我会遇到错误,我会尝试EXPLAIN
:
mysql> explain select * from runs where run_id = ?;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1
同样,我找不到任何获得准备好的查询的执行计划的方法。
如果查询中的常量值确实影响了执行计划,我需要知道如何为占位符查询获取执行计划。
或者,有人可以解释(或指向文档解释)为什么这会影响计划?