Sql“IN”比简单的`field_name` =“some”慢。为什么?

时间:2017-07-01 18:28:07

标签: mysql database

为什么我的MySQL查询

SELECT ... WHERE `field_name`="some";

处理速度更快

SELECT ... WHERE `field_name` IN( "some" );

'IN'使用二进制搜索,而简单field_name =“some”使用简单的逐行搜索。我是对的,不是吗?

PS:它在表中用<进行了测试。 100行。也许IN花费更多时间来“起飞”,但在大桌上工作得更快?

关联的quastion, - 二元搜索是应用于IN值,还是应用于表中的行,还是maby到两者?

1 个答案:

答案 0 :(得分:0)

MySQL中的IN语句假设一组可能的值将与表/结果集中的每一行进行比较。虽然WHERE子句使用单值比较,但在大多数情况下使用索引(如果可用)和mysql正在优化查询。