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

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

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

2. 95,147条记录

  1. postgres=# explain (analyze,verbose,timing,costs,buffers) select * from tbl where c2<10;  
  2.  QUERY PLAN  
  3. ---------------------------------------------------------------------------------------------------------------------------------  
  4.  Bitmap Heap Scan on postgres.tbl (cost=835.73..112379.10 rows=99785 width=73) (actual time=69.243..179.388 rows=95147 loops=1)  
  5.  Output: id, info, crt_time, pos, c1, c2, c3  
  6.  Recheck Cond: (tbl.c2 < 10)  
  7.  Heap Blocks: exact=88681  
  8.  Buffers: shared hit=88734  
  9.  -> Bitmap Index Scan on idx_tbl_1 (cost=0.00..810.79 rows=99785 width=0) (actual time=53.612..53.612 rows=95147 loops=1)  
  10.  Index Cond: (tbl.c2 < 10)  
  11.  Buffers: shared hit=53  
  12.  Planning time: 0.094 ms  
  13.  Execution time: 186.201 ms  
  14. (10 rows) 

3. 149930条记录(为快速获得结果,PostgreSQL使用位图进行合并扫描)

  1. postgres=# explain (analyze,verbose,timing,costs,buffers) select * from tbl where c1 in (1,2,3,4,100,200,99,88,77,66,55) or c2 <10;  
  2.  QUERY PLAN  
  3. ------------------------------------------------------------------------------------------------------------------------------------  
  4.  Bitmap Heap Scan on postgres.tbl (cost=1694.23..166303.58 rows=153828 width=73) (actual time=98.988..266.852 rows=149930 loops=1)  
  5.  Output: id, info, crt_time, pos, c1, c2, c3  
  6.  Recheck Cond: ((tbl.c1 = ANY ( {1,2,3,4,100,200,99,88,77,66,55} ::integer[])) OR (tbl.c2 < 10))  
  7.  Heap Blocks: exact=134424  
  8.  Buffers: shared hit=134565  
  9.  -> BitmapOr (cost=1694.23..1694.23 rows=153936 width=0) (actual time=73.763..73.763 rows=0 loops=1)  
  10.  Buffers: shared hit=141  
  11.  -> Bitmap Index Scan on idx_tbl_1 (cost=0.00..806.54 rows=54151 width=0) (actual time=16.733..16.733 rows=54907 loops=1)  
  12.  Index Cond: (tbl.c1 = ANY ( {1,2,3,4,100,200,99,88,77,66,55} ::integer[]))  
  13.  Buffers: shared hit=88  
  14.  -> Bitmap Index Scan on idx_tbl_1 (cost=0.00..810.79 rows=99785 width=0) (actual time=57.029..57.029 rows=95147 loops=1)  
  15.  Index Cond: (tbl.c2 < 10)  
  16.  Buffers: shared hit=53  
  17.  Planning time: 0.149 ms  
  18.  Execution time: 274.548 ms  
  19. (15 rows) 

(编辑:西安站长网)

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

热点阅读