加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

海量、多维数据让人抓狂?高效搜索方法看这里

发布时间:2019-09-17 07:40:54 所属栏目:MySql教程 来源:读芯术
导读:人与世界万物的互动会产生大量的时空数据。那么,当我们需要随时调用过去的数据时,改怎么办?尤其是面对各种海量、多维度的数据库,如果没有高效的搜索方法,我们只能望洋兴叹、束手无策。 别担心,本文将用详细的代码,手把手来传授高效搜索法的绝技! 对

重构极值KNN优化函数

  1. create or replace function ff(point, float8, int) returns setof record as  
  2. declare  
  3.  v_rec record;  
  4.  v_limit int := $3;  
  5. begin  
  6.  set local enable_seqscan=off; -- Force index that exits when scanned rows reach a specific number  
  7.  for v_rec in  
  8.  select *,  
  9.  (pos <-> $1) as dist  
  10.  from tbl  
  11.  where  
  12.  crt_time between 2017-07-22 17:59:34 and 2017-07-22 17:59:40  
  13.  and (  
  14.  c1 in (1,2,3,4,100,200,99,88,77,66,55)  
  15.  or  
  16.  c2 < 10  
  17.  )  
  18.  order by pos <-> $1  
  19.  loop  
  20.  if v_limit <=0 then  
  21.  -- raise notice "Sufficient data obtained"  
  22.  return;  
  23.  end if;  
  24.  if v_rec.dist > $2 then  
  25.  -- raise notice "All matching points returned"  
  26.  return;  
  27.  else  
  28.  return next v_rec;  
  29.  end if;  
  30.  v_limit := v_limit -1;  
  31.  end loop;  
  32. end;  
  33.  language plpgsql strict volatile; 

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读