R+树索引的主要特征是在R+树中兄弟节点对应的空间区域没有重叠,这样划分空间可以使空间搜索的效率提高。R+树也是R树的一个变种,在R+树中,兄弟节点对应的空间区域没有重叠,这样划分空间可以使空间搜索的效率提高。R+树对空间的划分及其索引对象的MBR组织如下:

R+树查找

算法Search(R,W)/R:R+树的根结点,W:查找矩形窗口/

S1.[查找中间结点]

If R是非叶结点 then

For R的每一索引项(p,MBR) DO

If MBRW then Search(p,WMBR)

S2.[查找叶子结点]

If R是叶子结点 then

检查R的每一数据项(OI,MBR)

RETURN所有与W相交的数据矩形

由查找算法可知,与R树相比,对于区域查找,查找路径应该可以减少,但依旧可能有多条;对于点查找,则可以通过一条路径得到查找结果。

R+树插入

Algorithm Insert(R,IR){

/*R为R+树的根结点,IR为要插入的数据矩形*/

I1.[查找中间结点]

if (R是非叶结点) then

for (p,MBR) do

if (MBRIR0) Insert(CHILD,IR);

I2.[查找叶子结点]

if (R是叶结点) then

if (R已有M个数据项)then SplitNode(R);

else 插入IR于R;

}

R+树删除

Algorithm Delete (R,IR){

/*R为R+树的根结点,IR为要删除的数据矩形*/

Dl.[查找中间结点]

if (R是非叶结点)then

for R的每一索引项(p,MBR)do

if (MBRIR0) then Delete(CHILD,IR);

D2.[查找叶子结点]

if (R是叶结点) then

从R中删除IR且调整R的父结点中对应的目录矩形;

}

结点分裂

Algorithm SplitNode(R){

SN1[寻找一个划分]

调用Partition;

// 设(p,MBR)为与R相关联的索引项,S1与S2表示划分得到的两个子区域,

// 创建两个新结点n1=(p1,MBR1)与n2=(p2,MBR2),MBRi=MBRSi,i=1,2;〗

SN2[填充新结点]

For (R的每一项(pk,MBRk) do

if (MBRkMBR==MBRk) then // MBR k完全包含于MBRi

put(pk,MBRk) in ni;

else // MBR k与MBR1及MBR2都重叠。

if (R是叶结点) then

put (pk,MBRk) in n1 与n2;

else

〖用划分线继续分裂(pk,MBRk)所指结点,设得到的新结点为:nk1=

(pk1,MBRk1),nk2=(pk2,MBRk2),MBRki完全包含于MBRi,将

nki加入到ni,i=I,2;〗

SN3[向上传播结点分裂操作]

if (R是根结点)

创建一新根结点,n1与n2为其两孩子结点;

else

// 在R的父结点PR中,用n1与n2替换R。

// 如果PR的索引项个数超过M,那么调用SplitNode(PR)。

}

mysql的R树,GIS空间数据库(17)R+树索引相关推荐

  1. R语言构建xgboost模型:使用xgboost的第一颗树(前N颗树)进行预测推理或者使用全部树进行预测推理、比较误分类率指标

    R语言构建xgboost模型:使用xgboost的第一颗树(前N颗树)进行预测推理或者使用全部树进行预测推理.比较误分类率指标 目录

  2. r roc函数_一棵树专栏 | ROC分析时一定要告诉R分析谁

    两个知名R包产生的矛盾嗨!大家好,我是一棵树,这是我第一次在解螺旋发文,还是蛮激动的.下面就开始吧!今天的主题是:ROC分析时一定要告诉R分析谁 用到的软件是:R语言 用到的R包是:pROC和ROCi ...

  3. r语言 col_R语言绘制聚类树示例

    R语言绘制聚类树示例层次聚类(hierarchical clustering)常见两种形式,"自底向上"的聚合策略(层次聚合)或"自顶向下"的分拆策略(层次分划 ...

  4. MySQL的存储引擎InnoDB选择了B+ 树

    我们知道数据的存储和检索是两个很重要的功能,当我们的数据量大了,怎么能快速的检索数据呢,答案是使用索引,可索引具体的技术实现有很多,选择哪一种呢,我就以mysql为例记录下它为什么选择了B+树作为索引 ...

  5. mysql的gis_MySQL的GIS功能

    MySQL的GIS(空间信息系统)功能从8.0开始进行了大幅改进,包括支持空间数据参照系统,空间数据索引等等新功能和新特性. MySQL空间扩展支持地理特征的生成.存储和分析,包括: 表示空间值的数据 ...

  6. R语言心得说:R语言之xlsx包读写Excel数据

    R语言心得说:R语言之xlsx包读写Excel数据 感谢Adrian A. Drǎgulescu发布的xlsx包 工具准备 [基础]简单读取excel文件数据 [基础]简单写入数据到excel文件 [ ...

  7. r语言 读服务器数据,R语言数据实战 | 安装R语言

    原标题:R语言数据实战 | 安装R语言 1.R的获取和安装 获取和安装R很容易(这也是它"亲民"的地方),具体步骤如下: Step 1: 登陆R语言官方网站https://www. ...

  8. R语言swirl教程(R Programming)13——Simulation

    R语言swirl教程(R Programming)13--Simulation | One of the great advantages of using a statistical program ...

  9. R语言swirl教程(R Programming)10——lapply and sapply

    R语言swirl教程(R Programming)10--lapply and sapply | In this lesson, you'll learn how to use lapply() an ...

  10. R语言swirl教程(R Programming)11——vapply and tapply

    R语言swirl教程(R Programming)11--vapply and tapply | In the last lesson, you learned about the two most ...

最新文章

  1. 【组队学习】【30期】时间序列分析
  2. Hive导出复杂数据到csv文件
  3. 被忽视但很实用的那部分SQL
  4. 表单中去掉重置和提交按钮和搜索框
  5. JPA数据库架构生成
  6. android wp主题,WP桌面:win10系统的最佳替代安卓应用
  7. maven 分批打包_IDEA maven 多模块打包问题总结
  8. Programming in the Mid-Future(转)
  9. python三本经典书籍-有哪些 Python 经典书籍?
  10. 记一次easywechat企业付款问题
  11. Hexo博客优化之Next主题美化
  12. 阿里巴巴2015实习面试
  13. 测试工程之测试计划之里程碑计划
  14. 搭建一个 nodejs 脚手架
  15. Canal Admin Web-UI 学习
  16. eclipse项目名旁边一个红xx,解决办法
  17. 计算机专业学生常用的软件,盘点学生党必备高效实用软件
  18. Python爬取斗鱼直播网站信息
  19. 关于arpg以及act游戏中怪物设定的一些思考
  20. 5分钟玩转Axure之中继器(表格篇)

热门文章

  1. 答题活动助手小程序更新记录
  2. 《嵌入式 – GD32开发实战指南》第1章 开发环境搭建
  3. 计算机二级c语言考试显示未作答,计算机二级等级考试交卷时显示我的ppt未做答,但是我做了的,是不是我ppt就没有成绩了...
  4. 360加固签名验证_360加固需要签名和密码
  5. matlab实现三角追赶法,矩阵三角分解的追赶法在MATLAB的实现
  6. 【微信小程序开发零基础入门】——微信小程序入门
  7. Nginx 集群搭建
  8. 使用tftp服务把路由器的配置上传到服务器
  9. 利用数据细分目标客户群
  10. SnowNLP自然语言处理模块具体用法