Php “WHERE”方法的Mysql比较

Php “WHERE”方法的Mysql比较,php,mysql,Php,Mysql,这两个where条款在速度方面有区别吗?该列是否仍在第二列中编入索引 1. SELECT * FROM TableName WHERE col1 = 'a' AND col2 = 'b' AND col3='c' 2. SELECT * FROM TableName WHERE (col1,col2,col3) = ('a','b','c') 什么时候 谢谢,不应该有,但您可以在数据库上下文中使用EXPLAIN查找。不应该有,但您可以在数据库上下文中使用EXPLAIN查找。使用EXPLAIN

这两个where条款在速度方面有区别吗?该列是否仍在第二列中编入索引

1. SELECT * FROM TableName WHERE col1 = 'a' AND col2 = 'b' AND col3='c'

2. SELECT * FROM TableName WHERE (col1,col2,col3) = ('a','b','c')
什么时候


谢谢,不应该有,但您可以在数据库上下文中使用EXPLAIN查找。

不应该有,但您可以在数据库上下文中使用EXPLAIN查找。

使用EXPLAIN确定查询的执行计划

如果EXPLAIN显示它们是相同的,那么唯一可能的时间差就是查询字符串的解析时间,这与运行查询相比是微不足道的

既然您说EXPLAIN显示相同的结果,只需选择您喜欢的一个,选择哪一个并不重要。

使用EXPLAIN确定查询的执行计划

如果EXPLAIN显示它们是相同的,那么唯一可能的时间差就是查询字符串的解析时间,这与运行查询相比是微不足道的


既然你说“解释”显示的是相同的,那就选择你喜欢的一个吧,选择哪一个无关紧要。

你可以通过使用

EXPLAIN EXTENDED

通过使用,您将获得更多信息

EXPLAIN EXTENDED

好的,你是做什么的?我如何使用它。编辑:我会在解释中看到反映差异的什么差异?键入explain SELECT*FROM TableName,其中col1='a'和col2='b',col3='c'和MySQL将为您提供关于它将使用什么计划来回答您的查询的确切信息。对另一个版本的查询执行相同的操作,如果计划相同,MySQL将使用的执行策略没有区别。我会把这个问题留一段时间,看看是否还有人要补充什么。谢谢你介绍我来“解释”,好了。在执行过程中应该没有区别。好的,解释是怎么做的?我如何使用它。编辑:我会在解释中看到反映差异的什么差异?键入explain SELECT*FROM TableName,其中col1='a'和col2='b',col3='c'和MySQL将为您提供关于它将使用什么计划来回答您的查询的确切信息。对另一个版本的查询执行相同的操作,如果计划相同,MySQL将使用的执行策略没有区别。我会把这个问题留一段时间,看看是否还有人要补充什么。谢谢你介绍我来“解释”,好了。在执行上应该没有区别。是的,他们是一样的。优化器会在编译前将第二个表单重写为第一个表单。@Mchl所以我想从这个意义上讲它会慢一些,但是速度的差异是微不足道的。是的。解析、编译和实际运行查询所花费的时间比重写要长得多。是的,它们是一样的。优化器会在编译前将第二个表单重写为第一个表单。@Mchl所以我想从这个意义上讲它会慢一些,但是速度的差异是微不足道的。是的。解析、编译和实际运行查询所花费的时间比重写要长得多。