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

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

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

4. 60,687条记录(即使运用出色的KNN性能优化,仍然需要耗费195毫秒)。

  1. postgres=# explain (analyze,verbose,timing,costs,buffers) select * from ff(point (0,0) ,5,1000000);  
  2.  QUERY PLAN  
  3. ----------------------------------------------------------------------------------------------------------------------  
  4.  Function Scan on postgres.ff (cost=0.25..10.25 rows=1000 width=6) (actual time=188.563..192.114 rows=60687 loops=1)  
  5.  Output: ff  
  6.  Function Call: ff( (0,0) ::point, 5 ::double precision, 1000000)  
  7.  Buffers: shared hit=61296  
  8.  Planning time: 0.029 ms  
  9.  Execution time: 195.097 ms  
  10. (6 rows) 

让我们看看不使用KNN优化需要多长时间。

结果非常令人惊讶——极限优化性能提高了一个数量级。

5. 2,640,751条记录

使用所有索引逐个扫描数据条件,得到ctid并执行ctid扫描。

现在,让我们来分解这个过程:

首先,让我们看看时间和对象属性的合并查询,成果非常惊人。使用位图BitmapOr时,查询可以跳过大多数数据块,并且扫描时间比单索引扫描要短。

(编辑:西安站长网)

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

热点阅读