社区
MySQL
帖子详情
关于 mysql 查询 in 参数的个数限制
sikuan
2012-03-08 12:01:39
想优化一个统计查询,把原来轮询多次的查询用一个in查询来代替
但是怕mysql里对in后面的参数个数限制,会导致查询异常
从网上夜没有找到相关资料
因为以前用过oracle,知道 “in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000.
”
mysql这里一直确定不了规则,所以请mysql高手帮指点一下
...全文
27291
8
打赏
收藏
关于 mysql 查询 in 参数的个数限制
想优化一个统计查询,把原来轮询多次的查询用一个in查询来代替 但是怕mysql里对in后面的参数个数限制,会导致查询异常 从网上夜没有找到相关资料 因为以前用过oracle,知道 “in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000. ” mysql这里一直确定不了规则,所以请mysql高手帮指点一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ACMAIN_CHM
2012-03-08
打赏
举报
回复
关于这个IN的讨论,你可以参考
http://topic.csdn.net/u/20090626/16/65f043cf-b9d9-4707-b660-9857461177f4.html
ACMAIN_CHM
2012-03-08
打赏
举报
回复
MYSQL没有限制,但对整个SQL语句的长度有限制。
ACMAIN_CHM
2012-03-08
打赏
举报
回复
max_allowed_packet
wolfwu_kg5
2012-03-08
打赏
举报
回复
mysql嵌套的层数有限制的吧
grace8
2012-03-08
打赏
举报
回复
in参数的话 不能嵌套太多层!
rucypli
2012-03-08
打赏
举报
回复
没有限制
wwwwb
2012-03-08
打赏
举报
回复
[Quote=引用楼主 sikuan 的回复:]
想优化一个统计查询,把原来轮询多次的查询用一个in查询来代替
但是怕mysql里对in后面的参数个数限制,会导致查询异常
从网上夜没有找到相关资料
因为以前用过oracle,知道 “in后括号中的参数个数有限制,Oracle 9i 中个数不能超过256,Oracle 10g个数不能超过1000.
”
mysql这里一直确定不了规则,所以请mysql高手帮指点一下
[/Quote]
建议还是保存在表中,与工作表连接,SQL语句长度有限制
Rotel-刘志东
2012-03-08
打赏
举报
回复
mysql应该没有限制的,sql多长也不做限制,但为了书写规范还是不要写的过长。
mysql
的in
查询
参数
限制
,多少数据量会造成性能下降?什么时候创建临时表合适?
一、前言 如题所示,博主对这个问题一直模模糊糊的,网上也没一个具体的测试,都是零零散散的提一下,缺少系统的测试。前两天看到csdn的论坛,看到两个大版主,有的说超过300性能会下降,有的说超过999性能会下降???行吧,咱们不如自己测测。 论坛链接:https://bbs.csdn.net/topics/392474752 ...
深度解析
MySQL
中IN语句
参数
限制
的底层逻辑与优化方案
MySQL
中IN语句的
参数
限制
,本质上是数据库在“数据传输安全性”“内存资源稳定性”“
查询
性能高效性”之间的平衡结果。开发者在使用IN语句时,不能仅关注功能实现,更需重视
参数
数量对系统的影响,通过合理的优化方案规避风险。
MySQL
对IN语句无固定
参数
数量
限制
,但受max_allowed_packet、net_buffer_length等配置
参数
制约,同时会因内存占用、匹配效率等问题形成隐性性能
限制
;
mysql
in
个数
限制
_
mysql
where in 条件中
参数
个数
问题
mysql
中经常在where 条件中使用到 in 语句
查询
SELECT * FROM table1 WHERE table1.id IN (1, 2, 3, 4, 5, …, 999999)删除DELETE FROM `table1` WHERE `id` in (835,836,837,…,999806)子
查询
SELECT * FROM table1WHERE table1.id IN(SEL...
mysql
中in的
参数
有
限制
_数据库 in 可以包含的
参数
个数
这是我第一次写博客,所以有什么问题,还请大家多多见谅:1>总结:数据库中 IN 可以包含的选项数如下:
MySql
数据库:无
限制
;只是
限制
了sql语句的大小;Oracle数据库:9i(256) 10g(1000)2>
MySql
max_allowed_packet 操作:我用的是
MySql
(5.6.28) 版本的数据库,可以通过如下命令去
查询
MySql
数据库所允许的最大 sql...
Oracle数据库 IN 函数
参数
个数
超过1000问题,
MySQL
的IN能超过1000吗
在有大量的
查询
条件 id 之类的 , 我们可以 先 使用 SQL执行工具 插入到 建立新的临时表当中 , 通过
查询
临时表得到的数据 id (假设) , 放到 需要
查询
SQL 的 IN 函数里面 即可 .中,使用in方法
查询
记录的时候,如果in后面的
参数
个数
超过1000个,那么会发生错误,JDBC会抛出“java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000”这个异常。
MySQL
57,064
社区成员
56,762
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章