温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Mysql中SQL语句过长会引起什么问题

发布时间:2021-09-15 14:12:59 来源:亿速云 阅读:141 作者:chen 栏目:数据库

本篇内容主要讲解“Mysql中SQL语句过长会引起什么问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql中SQL语句过长会引起什么问题”吧!

Mysql SQL语句过长引起的问题
 
我现在做数据统计,后台数据库用的是MYSQL。有一个常用的需求,查询未订购用户的访问PV(用户唯一性标识是用户手机号);
第一种写法:
 
SELECT COUNT(1) FROM day_resinlog_2012_06_12 WHERE mobile_number NOT IN 
(SELECT DISTINCT mobile_number FROM tbl_cartoon_order);
第二种写法:  www.2cto.com  
 
通过 SELECT DISTINCT mobile_number FROM tbl_cartoon_order 获得一个List<String> 结合,将获得的手机号的集合拼接成一个字符串当SELECT COUNT(1) FROM day_resinlog_2012_06_12 WHERE mobile_number NOT IN (xxxxx)中的xxxxx;
 
评论:第一种写法使用了子查询,这样速度比较慢,一般是我们不用它的原因,也是我们选择第二种写法的原因;
 
第二种写法表面上没有什么问题,其实也有一个潜在的风险,假如我们的订购手机号有几百万,就可能会引起服务器报错。因为一条SQL如果很长,超过了MYSQL服务器配置文件(下的my.ini)中的max_allowed_packet的量,就会报错。解决办法是改变max_allowed_packet的量。

到此,相信大家对“Mysql中SQL语句过长会引起什么问题”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI