phoenix 查询记录(内存不足、有趣的等效SQL、exists)

-- hbase两张大表join查询,存在性能与逻辑的问题(特别是分页)。
-- 不同数据,需要在进入Hbase前进行整合,大数据只存在一张表。

-- 两张 200W+的表join,内存不足报错
select t1.seq_id,t2.country from T_EXTENSION_SHOW t1 
  inner join T_EXTENSION_LOGIN t2 
  on(t1.show_date=t2.login_date and t1.email=t2.email) 
  where t1.show_date='2018-11-25';

-- 有趣的两个等效的sql,效率也差不多。 你们会选哪一个?
select t1.seq_id as seq_id from 
 (select 1 from T_EXTENSION_ALL_DATAS 
 where login_date='2018-11-24' and email='wjc@45555.com') t1 
where t1.country='France' order by t1.seq_id desc limit 10;

select t1.seq_id as seq_id from 
(select seq_id,country from T_EXTENSION_ALL_DATAS 
 where login_date='2018-11-24' and email='wjc@45555.com') t1 
where t1.country='France' order by t1.seq_id desc limit 10; -- 推荐:语句清晰,易读。

-- exists
select t1. * from T_EXTENSION_SHOW t1 where 
 EXISTS(select 1 from T_EXTENSION_LOGIN 
  where login_date='2018-11-24' 
    and email='wjc@1.com' 
    and t1.show_date=login_date and t1.email=email);


-- 执行计划,这种情况有China值时查询会很快。当COUNTRY='China11'时没有数据,就慢。
SERVER FILTER BY FIRST KEY ONLY AND COUNTRY='China'


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值