MySQL查询优化:IN()vs OR

Sil*_*ght 7 mysql query-optimization

我一直在阅读,MySQL使用IN()语句的查询有问题 - 有时索引不能使用.是真的如此,如果我不使用子查询?

哪种方法更好?有性能差异吗?

1

SELECT *
FORM `somewhere`
WHERE 
  `id` = 3
   OR `id` = 5
   OR `id` = 15
   OR `id` = 56
   OR `id` = 34
   OR `id` = 47
Run Code Online (Sandbox Code Playgroud)

2

SELECT *
FORM `somewhere`
WHERE 
  `id` IN (3,5,15,56,34,47)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 9

第二种方法更好.MySQL可以优化它.

MySQL使用IN()语句的查询存在问题 - 有时无法使用索引.是真的如此,如果我不使用子查询?

编写时IN可能存在问题IN(SELECT ...),但我不认为简单的值列表存在问题.