PostgreSQL的R-tree和一些空间类型

PostgreSQL - 地理数据索引之争:GIST VS R-tree 目录 GIST索引 GiST原理 R-tree索引 R-tree原理  GiST VS R-tree 创建时间 支持的操作 效率之争 本文主要针对的是地理数据,地理数据的特点是具有二维或三维的坐标数据,且都是基于PostGIS扩展对地理数据的操作来说的。 空间索引是空间数据库的关键所在,空间索引强,空间数据库支持大规模的数据才有意义,可以说空间索引的好坏决定了数据库的强弱。... 阅读详情

 

昨天和同学试了一下PostgreSQL的R-tree

table 就2列:id int; mbr  box;
其中在mbr上建了个r-tree索引。
当有10,000个tuple的时候,试了2个包含操作(操作符:~)和一个相交操作,系统竟然都是用的顺序查找
想想可能数据太少,于是又导入了300,000个tuple(由于在导入前已建索引,导入工作有点慢)

例1:explain select * from roadtest where mbr ~ box'(29,29),(30,30)'
输出:"Bitmap Heap Scan on roadtest  (cost=6.27..1032.28 rows=362 width=36)"
   "  Recheck Cond: (mbr ~ '(30,30),(29,29)'::box)"
   "  ->  Bitmap Index Scan on roadtest_mbr_rindex  (cost=0.00..6.27 rows=362 width=0)"
   "        Index Cond: (mbr ~ '(30,30),(29,29)'::box)"
终于用了r-tree, 并且用r-tree的时间是25 ms,而不用r-tree的时间是250 ms,大概5倍。
但是不太清楚bitmap index是干吗的。
今天找了一下bitmap index是用在找相交的地方的。如下:
Bitmap Indexes : Allows more than one index per operation,but low concurrency.
SELECT * FROM search_orders
WHERE start_date > now() AND status > 0
先找到所有A={start_date > now()} 和 B={status > 0}
然后取交集
但还是不知道我上面的查询就涉及到一个条件 怎么也用了bitmap index

但是,似乎r-tree并不一直适用,
例2:explain select * from roadtest where polygon(mbr) ~ point'(29,29)'
输出:"Seq Scan on roadtest  (cost=0.00..8451.52 rows=181084 width=36)"
   "  Filter: (polygon(mbr) ~ '(29,29)'::point)"
还是顺序查找的,ft

同时,也发现了PostgreSQL在空间数据操作的一些问题:
1。没有box~point 的操作,结果只能先把box转变为polygon,再来(如例2)
2。没有box(path)的函数
这些问题可能和PostgreSQL的定位有关,毕竟PostgreSQL不是PostGIS。

还有一个,PostgreSQL的r-tree基本是沿用了Guttman的r-tree,没有引入BulkLoad方法。

 

探索PostgreSQL的GIS宇宙:地理空间数据的无限可能 PostgreSQL的GIS支持,通过PostGIS扩展,为用户提供了强大的地理空间数据处理能力。从基础的空间数据存储到复杂的空间分析,PostGIS都能提供相应的功能和工具。本文详细介绍了PostGIS的主要功能和实践应用,并通过代码示例展示了如何在PostgreSQL中使用GIS功能。现在,您可以将这些知识应用到实际项目中,无论是城市规划、环境保护还是交通管理,PostGIS都能助您一臂之力。让我们一起探索PostGIS的无限可能,开启地理空间数据的新篇章!🚀注意。 阅读详情

相关推荐

树PostgreSQL的递归查询

树PostgreSQL的递归查询树PostgreSQL的递归查询树PostgreSQL的递归查询

postgresql 索引类型

postgresql提供了B-tree,R-tree,GiST和hash索引类型。不同的索引类型适合特定的查询类型。 绝大多数数据库都支持B-tree索引类型,postgresql默认的create index语句也是创建B-tree索引。   R-tree: R树是一种用于处理多维数据的数据结构,用来访问二维或者更高维区域对象组成的空间数据.R树是一棵平衡树。树上有两类结点:叶子结点和非

shixiaoguo90的专栏 2956

Rockit VDEC解码实战:从零构建高效视频处理流水线

本文详细介绍了Rockit VDEC硬件解码模块在RK3568/RK3588平台的应用实践,涵盖开发环境配置、MPI接口使用、码流发送模式选择、内存管理优化及多路解码系统构建。通过实战案例展示如何利用VDEC实现高效视频处理流水线,显著降低CPU占用率,提升嵌入式多媒体开发效率。

ol789012的博客 305

如何在 PostgreSQL 中安装和配置空间数据支持

PostgreSQL 是一个强大的开源关系型数据库管理系统,被广泛应用于各种场景中。当涉及到地理空间数据的存储和处理时,PostGIS 扩展为 PostgreSQL 提供了强大的地理空间功能,使其能够处理和查询空间数据。本文将详细介绍如何在 PostgreSQL 中安装和配置空间数据支持。

hello.reader 2291

Ubuntu系统下USB无线网卡无法识别的解决方案

Realtek的USB设备可能是无线网卡、有线网卡、读卡器等,系统仅知道“这是Realtek的USB设备”,但不知道“如何将其作为无线网卡驱动”。通过以上步骤,RTL8812AU 芯片的 Edimax 无线网卡应能被 Ubuntu 识别并正常工作。Realtek等品牌的无线网卡可能被系统简单识别为"USB设备",但未匹配到对应的无线驱动,导致设备无法发挥网络功能。是系统识别了USB设备,却未正确加载无线网卡驱动。(前4位是厂商ID,后4位是产品ID),显示设备已识别,但网络管理工具无反应,

极地星辰 3464

【FLINK+Kerberos+kafka】在华为云上 bootstrap.server使用IP的GSS initiate failed 问题处理

目前互联网上所有的资料显示都是说没有正确设置KDC之类的,但本博主实际通过java代码低版本 如使用kafka-client 0.11.0 ,2.4.0等版本手动创建kafkaconfig 或者使用华为云的LoginUtils类 都能够正常链接,所以应该是高版本添加了相关配置,或者flink在subtask 创建kafkaAdminClient时 丢弃或使用了默认的一些配置行为,导致了客户端和kdc验证之间出现了principal 不一致导致验证失败。client.dns.lookup配置项作用。

honghanyue1791的博客 575

postgresql源代码分析

从Linux下拷回通过编译的源代码后,在硬盘上展开,例如我展开后将所有的源代码放到D:/Postgresql/source目录下。然后建立一个目录D:/Postgresql/insight,打开sourceinsight后在这个目录下创建一个project,将D:/Postgresql/source/backend目录下的所有文件加入该项目然后找到D:/Postgresql/source/doc/

xto的专栏 5562

华为OD机考双机位A卷 - 开心消消乐(Java & Python& JS & C/C++ & GO )

华为OD机考双机位A卷 - 开心消消乐(OD上机考试双机位A卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1268

PostgreSQL安装及空间数据

Npgsql: 用户的手册Copyright© The Npgsql Development Team   Lastupdate: $Date: 2009/12/20 02:33:47 $ by $Author: fxjr $Category:External documentationIntendedAudience: Npgsql Users1. What is Npgsql? Npgsql ...

weixin_41990636的博客 1719

从HCI层浅析LE Audio通话建立流程

本文分析了BLE AUDIO通话协议建立的全过程。当手机来电时,系统会通过CCP EATT链路通知耳机准备通话,并断开原有音乐CIS连接。随后建立通话专用的CIG组,其参数设置(如MAX SDU SIZE=80、RTN=2)与音乐场景明显不同,更注重通话的实时性。文中详细描述了设置ISO数据路径、启用ASE、建立CIS连接等关键步骤,特别指出通话采用Conversational音频上下文类型。最后解析了ISO数据包参数含义,展示了10ms周期、32kHz采样率等通话特性参数。整个过程体现了BLE AUDIO

十多年蓝牙协议软件开发,擅长蓝牙协议分析 1861

华为OD机试真题 新系统 2026-04-19 Java&Go 实现【分辨率排序】

华为OD机试真题 新系统 2026-04-19 Python&JS 实现【分辨率排序】

MISAYAONE的博客 306

为什么使用postgre

1.支持json类型 准备数据 创建表: create table ay_json_test( id varchar primary key, name varchar, json_value json ) 插入数据: insert into ay_json_test values('001','ay','{ "ay_name":"阿毅", "h...

didixiao_的博客 2857

vue3+element-plus - 最新详细实现将表格Table组件 “所见所得导出“ 为excel(xls/xlsx)电子表格文件,表格中的图片图像、图标等媒体资源完美导出显示(详细示例代码)

vue3,nuxt3,element plus,表格组件,Table,el-table,导出,下载,excel,电子工作簿,xls,xlsx,将表格导出成xls,如何把表格原封不动的导出成excel,保留图片,带图片,图标,如何导出包括含有图片的Excel表格,图片和表格数据导出excel,把表格导出成excel格式,表格内的图片一起导出,vue3导出图片和数据到Excel,可导出图片,导出图像到Excel,网页上的图片怎么能导出到xls表格中,显示图片url链接,图片太多导出失败,图片会超出单元格,图片不

✅ 精选推荐文章 4767

Indexes in PostgreSQL — 5 (GiST)

In the previous articles, we discussed PostgreSQL indexing engine, the interface of access methods, and two access methods: hash index and B-tree. In this article, we will describe GiST indexes. GiST GiST is an abbreviation of “generalized search tree”. Th

一名数据库爱好者的专栏 720

【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏1(附项目源码)

当今,塔防游戏已经成为游戏市场上备受欢迎的一类游戏类型。《保卫萝卜》作为其中的经典之作,深受玩家喜爱。本项目旨在基于《保卫萝卜》的玩法和特点,开发一个Unity2D塔防游戏,让玩家可以在游戏中体验到精彩的策略对抗与刺激的关卡挑战。本项目将通过Unity引擎进行开发,利用2D游戏开发相关技术,包括但不限于精灵动画、碰撞检测、UI界面设计等。我们将实现萝卜作为关键角色的防守任务,并设计各种怪物和防御塔,使得游戏具有多样的战术策略和游戏乐趣。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4924

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

PostGis空间(下):空间连接与空间索引

这篇文章紧接着上一篇的PostGis--空间(上)。PostGIS的空间连接和空间索引技术是高效处理地理数据的关键。空间连接利用ST_Intersects、ST_Contains等函数实现复杂的空间关系查询。空间索引,特别是R-Tree结构,大幅提升了大规模空间数据的查询效率。空间索引的创建、维护和优化方法,包括ANALYZE和VACUUM操作,为构建高性能地理信息系统提供了实用指南。这些技术的掌握对于优化空间数据库性能和进行复杂空间分析至关重要。

CJPSR的博客 1767

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

postgresql删除索引_PostGIS系列课程之空间索引

空间索引回想一下,空间索引是空间数据库的三个关键功能之一。索引使使用空间数据库处理大型数据集成为可能。如果不建立索引,则对功能的任何搜索都将需要对数据库中的每个记录进行“顺序扫描”。通过将数据组织到可以快速遍历以查找特定记录的搜索树中,可以加快索引的搜索速度。空间索引是PostGIS的最大能力之一。在前面的示例中,建立空间联接需要将整个表相互比较。这可能会非常耗时:将两个10,000条记...

weixin_35544017的博客 3527

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Greenplum 空间(GIS)数据检索 B-Tree & GiST 索引实践 - 阿里云HybridDB for PostgreSQL最佳实践

点击查看全文 标签 PostgreSQL , GIS , PostGIS , Greenplum , 空间检索 , GiST , B-Tree , geohash 背景 气象数据、地震数据、室内定位、室外定位、手机、车联网、还有我们最喜欢的“左划不喜欢、右划喜欢”,越来越多的位置属性的数据。将来会越来越多。 基于GIS的数据分析、OLTP业务也越来

DONGYUXIA15810857916的博客 2390

PostgreSQL技术内幕6:PostgreSQL索引技术

本文主要介绍PG的索引技术,包含PG支持的索引类型,语法,查看方式,以及其中B-Tree索引的原理解析和源码解读。

qq_40529346的博客 3478

PostgreSQL - 01 从 O(n²) 到 3 秒完成:百万级 POI 与 AOI 空间匹配的 PostGIS 优化实战 地理空间计算优化全流程

在百万级空间数据中高效判断点(POI)与区域(AOI)的包含关系,实现从传统 O(n²) 暴力计算到基于 PostGIS 空间索引的高性能优化。最初方案需遍历全部点与区域进行几何运算,计算量随数据量平方增长,500 万 POI 与 10 万 AOI 的匹配耗时达 72 小时。优化方案采用 PostgreSQL + PostGIS,通过 GIST(R-Tree)空间索引加速 ST_Contains 查询,结合边界框预过滤与 VACUUM ANALYZE 维护,将复杂度降至 O(n),计算时间缩短至 3 秒

谢谢你的喜欢 我们一起无限进步 1317

数据库索引 B+树 vs. B树:PostgreSQL 14 中 5 种索引类型性能实测

本文深入评测了PostgreSQL 14中B+树与五种索引类型(B-tree、Hash、GIN、GiST和BRIN)的性能表现。通过详尽的基准测试,揭示了各类索引在不同工作负载下的查询延迟、写入吞吐和磁盘占用等关键指标,为数据库优化提供实战选型指南。特别对比了B树与B+树在节点结构、查询效率和空间利用率上的本质区别,帮助开发者根据业务场景选择最优索引策略。

cuili5839的博客 411

MySQL与PostgreSQL关键对比三(索引类型)

MySQL和PostgreSQL在索引方面有许多相似之处,但也存在显著的差异。下面是对两者在索引类型、功能和使用场景方面的详细比较。特别是MySQL缺少的全文索引,可以在PostgreSQL中进行尝试并测试一下性能。

lgbingyu00的博客 1821

GIS 数据库设计 5 阶段实战:从 E-R 图到空间数据索引的完整流程解析

本文详细解析GIS数据库设计的5个关键阶段,从需求分析、E-R模型构建到空间数据索引优化。通过实际案例展示如何将地理信息系统(GIS)技术应用于城市设施管理,提升空间查询效率,解决传统电子表格无法处理的空间关联问题。重点介绍空间E-R模型、关系模型转换及物理设计优化策略,为GIS数据库设计提供完整实战指南。

dilv4062的博客 466

PostgreSQL 和 MySQL两个数据库的索引的区别

PostgreSQL和MySQL的索引功能存在显著差异。两者都支持B-Tree、唯一索引等基本类型,但PostgreSQL提供更丰富的索引类型(如GIN、GiST、BRIN),支持部分索引、并发创建索引等高级功能,适合复杂查询场景。MySQL则更侧重实用性,支持全文索引和空间索引,适合传统Web应用。PostgreSQL的索引体系更灵活强大,而MySQL在简单CRUD和高并发OLTP场景中表现更成熟。根据需求选择:复杂数据用PostgreSQL,常规Web应用用MySQL。

python15397的博客 1200
上一篇: 开始 关于PostgreSQL 的内容
下一篇: PostgreSQL的Storage(1)-buffer
ipiggg
博客等级 码龄21年 1粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值