和GiST相似,SP-GiST索引为支持多种搜索提供了一种基础结构。SP-GiST 允许实现 众多不同的非平衡的基于磁盘的数据结构,例如四叉树、k-d树和radix树。作为一个例 子,KingbaseES的标准捐献包中包含了一个用于二维点的SP-GiST操作符类,它用于 支持使用下列操作符的索引化查询:
<< 、>>、 ~= 、<@ 、<^、 >^

例子:

kingbase=# create table t_spgist (id int, rg int4range);
CREATE TABLE
kingbase=#  insert into t_spgist select id, int4range(id, id+(random()*200)::int) from generate_series(1,100000) t(id);
INSERT 0 100000
kingbase=# select * from t_spgist  limit 3;id |   rg
----+---------1 | [1,72)2 | [2,158)3 | [3,57)
(3 行记录)kingbase=# create index idx_t_spgist_1 on t_spgist using spgist (rg);
CREATE INDEX
kingbase=# explain (analyze,verbose,timing,costs,buffers) select * from t_spgist where rg && int4range(1,100);    QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------Bitmap Heap Scan on PUBLIC.t_spgist  (cost=48.03..725.12 rows=1000 width=36) (actual time=0.082..0.134 rows=99 loops=1)Output: id, rgRecheck Cond: (t_spgist.rg && '[1,100)'::INT4RANGE)Heap Blocks: exact=1Buffers: shared hit=5->  Bitmap Index Scan on idx_t_spgist_1  (cost=0.00..47.78 rows=1000 width=0) (actual time=0.057..0.057 rows=99 loops=1)Index Cond: (t_spgist.rg && '[1,100)'::INT4RANGE)Buffers: shared hit=4Planning time: 0.264 msExecution time: 0.217 ms
(10 行记录)kingbase=#  set enable_bitmapscan=off;
SET
kingbase=#  explain (analyze,verbose,timing,costs,buffers) select * from t_spgist where rg && int4range(1,100);    QUERY PLAN
------------------------------------------------------------------------------------------------------------------Seq Scan on PUBLIC.t_spgist  (cost=0.00..1887.00 rows=1000 width=36) (actual time=0.034..37.313 rows=99 loops=1)Output: id, rgFilter: (t_spgist.rg && '[1,100)'::INT4RANGE)Rows Removed by Filter: 99901Buffers: shared hit=637Planning time: 0.124 msExecution time: 37.389 ms
(7 行记录)

kingbase索引使用实践——sp-gist相关推荐

  1. in 用不用索引_MySQL 索引最佳实践之问题反馈

    我之前发布的 PPT -- <MySQL 索引最佳实践>中,有很多人提了很多问题,我没有时间一一回答,于是我决定把这些问题集中在一起进行回答. 问:我们团队中的一人想要使用 bigint ...

  2. solr文档索引最佳实践

    solr文档索引最佳实践 @(OTHERS)[solr] solr文档索引最佳实践 一直接提交 二AutoCommit 三 commitWithin 四建议及结论 1单线程情况 2多线程情况 solr ...

  3. mysql explain 索引_MySql中Explain详解与索引最佳实践

    使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的.分析你的查询语句或是结构的性能瓶颈 下面是使用 explain 的例子: 在 select 语句之 ...

  4. Alibaba Code代码索引技术实践:为Code Review提供本地IDE的阅读体验

    作者:曲径     阿里研发基础设施团队 Code Review在研发流程中非常重要,但Web界面中Code Intelligence能力的缺失改变了原有的代码阅读习惯,又增加了阅读成本.本文将介绍阿 ...

  5. PostgreSQL索引详解5——Gist索引

    1.概述 Gist(Generalized Search Tree),即通用搜索树.和btree一样,也是平衡的搜索树. 和btree不同的是,btree索引常常用来进行例如大于.小于.等于这些操作中 ...

  6. 不会吧,不会吧?MySQL 索引最佳实践你不看看

    作者爱说话 忙忙碌碌的一周又过去了,这周最大的乐趣就是买了个小音箱,又可以下班的时候开始愉快的开始练琴了,程序员嘛,还是得培养点艺术细菌.哈哈 这周本来没想好写什么东西,刚好周五公司进行了内部技术分享 ...

  7. [Phoenix] 十、全局索引设计实践

    概述 全局索引是Phoenix的重要特性,合理的使用二级索引能降低查询延时,让集群资源得以充分利用. 本文将讲述如何高效的设计和使用索引. 全局索引说明 全局索引的根本是通过单独的HBase表来存储数 ...

  8. Phoenix:全局索引设计实践

    概述 全局索引是Phoenix的重要特性,合理的使用二级索引能降低查询延时,让集群资源得以充分利用. 本文将讲述如何高效的设计和使用索引. 全局索引说明 全局索引的根本是通过单独的HBase表来存储数 ...

  9. MySQL索引优化实践

    1 联合索引最左前缀法则 create index n_a_p_index on person(name,age,phone) 如果索引了多列(联合索引),要遵守最左前缀法则.最左前缀法则指的是查询从 ...

最新文章

  1. 多线程程序在多核和单核上运行的不同
  2. 使用 monitor 命令查看 redis 请求日志
  3. 另一种无法enable ABAP source code tool的原因
  4. Exploit练习Protostar——stack3
  5. python中的series的结构_pandas 数据结构之Series的使用方法
  6. python调用实例做父类_Python super() 调用父类方法, 但是父类中 self 并不是父类的实例而是子类的实例?...
  7. java设计汽车为父类_JAVA设计一个汽车类作为父类,包含汽车的相关属性和方法。电动汽车,普通汽车,混合汽车,...
  8. 实习周记---20180519
  9. discuz门户文章增加代码高亮
  10. 给力大辞典v3.0 免费安装版【包含18部字典词典】
  11. 母牛的故事(C语言)
  12. 连不上WiFi了怎么办之网络异常时的网络重置
  13. 好玩的Python彩蛋
  14. OPA1612AIDR IC AUDIO 2 CIRCUIT 8SOIC
  15. hadoop分布式安装部署具体视频教程(网盘附配好环境的CentOS虚拟机文件/hadoop配置文件)...
  16. 时钟周期是干什么的?底层原理是什么?
  17. union和union all的区别,hive遇到Schema of both sides of union should match处理办法
  18. mysql默认字符编码设置教程:my.ini设置字符编码
  19. 学习IPD集成产品开发(转载整理)
  20. 电信4g网速测试软件,移动联通电信三大运营商4G网速测试,仅供非专业人士参考...

热门文章

  1. 2020网鼎杯青龙组部分题目writeup
  2. 正则表达式验证(姓名、性别、生日、手机号、身份证、邮箱、强密码)
  3. MeeGo开发者(一):何为MeeGo?
  4. 詹姆斯、乔丹谁是历史最佳?听听ChatGPT怎么说
  5. wps如何保存最终状态_Word 2013文档设置最终状态和取消最终状态的方法
  6. JAVA开发去北京还是上海_大学生学完java后去上海还是北京工作呢?
  7. 最新-如何在CSDN开通付费资源功能
  8. java swing 版坦克大战
  9. (附源码)springboot网上投票系统 毕业设计 282018
  10. MathType的使用--一些希腊字母的位置