Welcome 微信登录

首页 / 数据库 / MySQL / 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);第二种写法:2.1  通过 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服务器配置文件(windows下的my.ini)中的max_allowed_packet的量,就会报错。解决办法是改变max_allowed_packet的量。有没有一个更好的办法呢?Oracle实验:用BBED恢复误删记录的全过程Oracle 11gR2 RAC的网络规划解析相关资讯      MySQL数据库基础教程 
  • MySQL服务器Linux IO调度器算法的  (10/16/2012 20:53:36)
  • MySQL 中explain的用法  (05/04/2012 08:53:12)
  • MySQL性能调优之Memory or SSD?  (04/22/2012 07:50:25)
  • Linux自动启动MySQL  (07/30/2012 11:05:29)
  • MySQL Workbench “Error Code:   (04/28/2012 21:16:54)
  • MySQL的备份与恢复  (04/20/2012 09:06:25)
本文评论 查看全部评论 (0)
表情: 姓名: 字数