8
A
回答
7
只要你做的只是一个平等的(而不是像,它可以有短路的影响),只需用一个值来代替它:
EXPLAIN SELECT foo FROM bar WHERE some_column = 'foo';
因为它不是真正执行查询,结果应该与实际情况不同。有些情况下这是不正确的(我已经提到过LIKE)。下面是的LIKE
不同的情况为例:
SELECT * FROM a WHERE a.foo LIKE ?
- 参数1 ==
Foo
- 可以使用索引扫描一个索引是否存在。 - 参数1 ==
%Foo
- 需要一个完整的表扫描,即使存在索引 - 参数1 ==
Foo%
- 可能使用索引扫描,这取决于索引的基数和其它因素
如果你加入,而where子句产生一个不可能的组合(因此它会短路)。例如:
SELECT * FROM a JOIN b ON a.id = b.id WHERE a.id = ? AND b.id = ?
如果第一和第二参数是相同的,它有一个执行计划,并且如果它们是不同的,它会短路(并返回0行没有击中任何数据)...
还有其他的,但这些都是我现在能想到的我的头顶...
0
解释计划可能会有所不同,具体取决于你放入什么。我认为解释没有真实参数的计划并不意味着什么。
0
我不认为这是可能的。 WHERE some_column ='value'
,WHERE some_column = other_column
和WHERE some_column = (SELECT .. FROM a JOIN b JOIN c ... WHERE ... ORDER BY ... LIMIT 1)
返回不同的执行计划。
相关问题
- 1. MySQL解释查询理解
- 2. MySQL查询结果解释
- 3. 在联合查询的MySQL解释
- 4. Expain“解释”的查询结果在MySQL
- 5. 如何解析在XSLT查询参数
- 6. MySQL解释器调用没有聚合函数的查询聚合查询
- 7. 解释工作中的子查询MySQL
- 8. 带参数的ParameterizedSparqlString查询
- 9. 如何在PostgrSQL中使用已准备的查询执行“解释”语句,该查询具有绑定参数?
- 10. 如何在MySQL查询浏览器中设置查询参数?
- 11. MS-Access如何使用查询带有参数的形式
- 12. 需要解释与MySQL查询
- 13. 请解释这个mysql查询。
- 14. PHP-MySQL查询 - 请解释一下
- 15. mySQL - 如何解释我的EXPLAIN结果并优化此查询?
- 16. 如何解释在JavaScript中的所有数据与参数
- 17. 如何在java中有效地解析查询参数?
- 18. 固有参数OpenCV解释
- 19. MySQL查询数组参数
- 20. sql查询解释
- 21. 如何优化此MySQL查询 - 解释输出包含
- 22. mysql如何执行或解释子查询?
- 23. 如何优化查询?解释计划
- 24. 如何评估/解释sphinxql查询?
- 25. Laravel解释我如何工作查询
- 26. 什么是用简单英语解释的参数化查询?
- 27. 带有Meta键和值的MySQL查询
- 28. 带有%s和%d的PHP MySQL查询
- 29. Mysql查询选项参数
- 30. 关系代数的解释查询
是的,但他们也不会被允许在参数化查询;-)。所有参数都可以被替换为标量值(int,string,null等)。所以只有你的例子中的第一个将是一个适当的替代... – ircmaxell 2010-06-16 17:06:15