sql - "IN"查询中值的数量限制

标签 sql mysql

给定如下查询:

DELETE FROM FOO WHERE ID in (1,2,3,4,....);
  • 包含值的数量是否有上限? (我见过 Oracle 在 1000 时提示,但那是很久以前的事了。我不知道那是安装依赖、oracle 版本依赖等等,还是 mysql 是如何限制它的。

  • 性能影响是什么?将值集分解成更小的子集并发送多个删除请求会更快吗?

最佳答案

来自 the docs :

The number of values in the IN list is only limited by the max_allowed_packet value.

至于性能,当它们开始接近一千个左右的 ID 时,我会分解查询。 IN 优化得很好,但向它扔大量列表似乎仍然没有任何好处。

关于sql - "IN"查询中值的数量限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075048/

相关文章:

SQL:如何选择特殊字符之间的子字符串

sql - 将多行连接成一行

javascript - buffer是什么数据格式?

php - 如果值匹配则更新行,否则插入新行

mysql - 获取最小值/最大值的时间戳

mysql - rails 3;将 'and' 添加到 where 子句

mysql - 根据当前时间获取路线

mysql - mysql中整数数组的最小存储?

python - 无法在 Windows 10 上 pip 安装 mysqlclient 或 cython 或 lxml

php - 如何显示表中的所有记录?