mysql 高效复制存储数据到另一张表

最近有个需求,我们老大说让我写个存储过程把一张表的数据分组之后按时间取最近的三条数据,复制到另一张表中。刚开始他也没有说这么明白,我就用存储过程写了。写完之后他才说每天取最近三条数据。我一想,这根本用不到存储过程,直接两条SQL搞定如下:

drop table if exists new_user_contact_rel;

create  table new_user_contact_rel (select a.* from wx_cp_user_contact_rel a where exists (select count(*) from wx_cp_user_contact_rel where external_userid = a.external_userid and follow_user_createtime < a.follow_user_createtime having count(*) < 3) order by a.external_userid );
   

表里面有650万数据,这两条SQL执行完大概一分钟左右吧。如果加索引去优化的话可能更快,由于是每天执行一次,一分钟也不算太久所以先这样也可以。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值