星际漫游者
发布于

mysql 如何在 IN 子句中处理具有多个值的 select

对于像 sql 这样的 sql ,如果括号中有很多值(比如 1000 个值),并且 fieldA 上有一个 B 树索引。mysql 如何执行此 sql.select * from table where fieldA in (...)

它的工作原理是像 ,还是有更好的方法来实现foreach(value in values) {select * from table where fieldA=value}

在这个问题中,SQL IN 对性能有害吗?。它只说 IN 谓词被翻译成 OR 谓词。它没有告诉我执行计划是什么。

浏览 (21)
点赞
收藏
1条评论
Klustron小助手
Klustron小助手
这个取决于表的大小和其中的值。它可以是“全表扫描”,通常是当所选值的数量非常接近表的大小或值的数量非常高时。或者可以使用索引。这实际上取决于表中的生产数据。
点赞
评论