我想看看SQL的执行计划:MySQL不能显示解释数据
explain select name,address from address where id=?
但它说:
您的SQL语法错误;检查手册, 对应于您的MySQL服务器版本的正确语法使用 附近'?'
- 不使用时解释计划,而不是绑定变量的MySQL只支持指定SQL值?
- 如果不是,我怎么看到绑定变量的执行计划?因为我认为执行计划的选择*从地址在哪里id =?是不同的选择*从地址id = 2。
- 另外,当我在mysql中使用说明时,它不会显示这个sql会像Oracle那样是全表访问或索引访问等,所以我怎么能看到这些信息?
感谢您的回答,我误解了Oracle和MySql的执行计划,因为Oracle的执行计划可能有?在SQL中。同时,我看到你对解释输出格式的参考,似乎没有'成本','时间','CPU成本'等信息,像甲骨文这样我们可以用数字来知道或比较执行计划? – frank
还有其他信息,包括成本估算值,可以使用[优化器跟踪](https://dev.mysql.com/doc/internals/en/optimizer-tracing.html)找到,但这些细节应该是不必要的,除非您正试图理解优化器如何选择它所做的计划。我无法解决Oracle问题。 –