MySQL 中 IN (42) 和 id = 42 之间的性能差异是什么?

Jan*_*ers 5 mysql performance query-performance

之间是否有任何性能差异

SELECT * 
FROM table 
WHERE id IN (42);
Run Code Online (Sandbox Code Playgroud)

SELECT * 
FROM table 
WHERE id = 42;
Run Code Online (Sandbox Code Playgroud)

?

问题是只提供一个值。对我来说,自然的假设是优化器将它们视为平等并在获取数据时执行相同的优化。但这是正确的吗?

小智 1

SELECT * FROM table WHERE id IN (42,43,44,45,...);
Run Code Online (Sandbox Code Playgroud)

相当于

SELECT * FROM table WHERE id = 42 or id = 43 or id = 44 or id  = ...;
Run Code Online (Sandbox Code Playgroud)