嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2014-12-20 2162 次浏览 标签 : Mysql

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

有两张表group_post帖子表,group_post_fav_idx_oid_0用户点赞帖子记录表,帖子id对10取模等于0的分表。

需求:取出点赞数>20,评论数>10的帖子,但是在group_post里面没有记录点赞数的字段,所以需要对点赞记录表做统计。

#50 rows in set (1 min 9.67 sec)
select id, name from group_post 
where id>=144 
      and id<=21081
      and id in ( select oid from group_post_fav_idx_oid_0 group by oid having count(*)>20 )
      and id not in (90,210,263,950,964,1157)
      and gid not in (0,90,165,166,179)
      and cnum>10
order by last_ts limit 50

优化之后

#50 rows in set (0.09 sec) 
select a.id, a.name from group_post a, group_post_fav_idx_oid_0 b 
where a.id>=144
	and a.id<21081
	and a.cnum>100
	and a.id=b.oid
	and a.id not in (90,210,263,950,964,1157)
    and a.gid not in (0,90,165,166,179)
group by b.oid
having count(b.oid)>20
order by a.last_ts limit 50

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表