大数据量关联查询,速度极慢,请问如何优化

纸纸纸纸飞飞 2017-04-13 03:39:38
表: testmobile(数量:88W条)
字段:
DROP TABLE IF EXISTS `testmobile`;
CREATE TABLE `testmobile` (
`mobile` varchar(12) NOT NULL,
PRIMARY KEY (`mobile`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

表:mobilelist(数量:232W条)
字段:
DROP TABLE IF EXISTS `mobilelist`;
CREATE TABLE `mobilelist` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`mobile` varchar(12) DEFAULT NULL,
`city` varchar(10) DEFAULT NULL,
`type` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2233847 DEFAULT CHARSET=gb2312;

需求,表testmobile中,剔除表mobilelist中出现过的mobile信息。
我处理是这样:
select m.mobile, h.mobile as existmobile
from testmobile m
left JOIN
( select mobile
from mobilelist
)h on m.mobile = h.mobile
初步想法是这样:通过脚本取出的数据,导出为csv或文本文件,再通过程序来判断,只要existmobile存在有值的数据,就进行删除掉

结果在执行这个脚本时,已经执行1个多小时了,数据还没有出来。

请问有更好的办法来解决吗?
...全文
878 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujinqiang 2017-04-17
  • 打赏
  • 举报
回复
(数量:88W条), 数据量很大啊
纸纸纸纸飞飞 2017-04-17
  • 打赏
  • 举报
回复
多谢各位支持,已经通过其它办法解决了。 通过mysql临时表解决的。把查询出来的数据,放到临时表时,再通过工具导出来。阿门,。。。。。
二月十六 2017-04-13
  • 打赏
  • 举报
回复
搜索88万条数据,一起搜索出来,怎么着也不会太快了吧
纸纸纸纸飞飞 2017-04-13
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
SELECT  m.mobile ,
        h.mobile AS existmobile
FROM    testmobile m
        LEFT JOIN mobilelist h ON m.mobile = h.mobile
我原来本想加一些条件,并剔除掉相同的mobile,所以才放到括号中的。结果把条件去掉后忘了去掉括号了。 也试了你发的这个脚本,还是非常慢。
二月十六 2017-04-13
  • 打赏
  • 举报
回复
SELECT  m.mobile ,
        h.mobile AS existmobile
FROM    testmobile m
        LEFT JOIN mobilelist h ON m.mobile = h.mobile

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧