MySQL引擎特性GIS-R-TREE

Geohash用于代表位置的经纬度编码成一个字符串,支持WGS 84 Coordinate System

MySQL支持的空间数据类型包括GEOMETRY,POINT,LINESTRING,POLYGON.其中GEOMETRY可以表示任意一种空间类型,其他几种则需要固定有效的存储格式如(MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION)

两种标准插入数据:

1、WTK文本格式,在插入数据时直接用文本插入,如point(1,2)、LINESTRING(0 0, 10 10, 20 25, 50 60),内部会转换成特定的格式存储,通过ASTEXT()转换成WKT的结果格式

2、WKB标准的数据,通过函数GeomFromWKB进行插入转换,如point(1 2)包含21字节,在从表中查取数据时,通过ASBINARY()将结果转换成WKB各式

#在INNODB存储引擎中使用的存储为BLOB类型,存储的数据格式为WKB格式,再加上4字节的SRID(Spatial Reference Identifier.空间关系标示)

MBR介绍

R-TREE专门用来表示空间数据类型,存储的记录类型是该空间数据所能表示的最小边界的矩形,简称MBR(最小边框矩形minimum bounding rectangle)

MBR记录能包围这些空间的最小矩形,对于水平或垂直的直线,MBR实际上记录的是直线,POINT话MBR表示的是一个退化成点的矩形

R-TREE部分特点:

1、叶子节点记录包含了MBR以及指向的聚集索引记录,非叶子节点记录包含了指向叶子节点的指针,及对应叶子节点记录所组成的MBR,目前只支持二维数据的索引

2、SPATIAL INDEX的键值的列必须显示定义为NOT NULL,只支持定义一个空间数据类型的列

3、R-TREE采用一种和B-TREE截然不同的数据检索方式,检索过程中主要通过SSN(SPLIT SEQ NUM)来判断是否有数据页发生了分裂

4、RTREE中存储的并不是真正的数据,而是基于键值列的数据构建的MBR,因此在插入数据前需要计算根据传递过来的WKB格式计算出MBR,所以必须通过聚集索引获取真正的地理数据

5、目前不支持缓存R-TREE的数据变更操作,也不支持自适应哈希,无法使用NEXT-KEY来防止幻读,因此引入Predicate Lock来防止幻读

关于空间数据类型的分析计算函数(可以从官方文档上获得全部信息):

1、ST_GEOMFROMTEXT用于将空间数据从可读的文本类型转换成内部存储的二进制类型

2、ST_ASTEXT将空间数据转换成可读的文本类型

3、POINT(arg1,arg2)函数用户代表地理空间上某个点的位置,arg1为经度,arg2为维度

4、ST_DISTANCE_SPHERE:计算两个地点的球面距离,单位为米

5、MBRWITHIN:该函数为求出你周围的目的地目标,MBRWITHIN(g1,g2)意义:如果g1在g2的范围内则返回1否则返回0

6、MBRCONTAINS:表示某个多变形内是否包含某个点,或某距离内包含某点

7、MBRINTERSECTS:用户判断两个空间类型是否存在重叠或者交叉

8、MBRDISJOINT:判断是否相交,不相交返回1

9、MBROVERLAPS:当g1和g2存在重叠时返回1,重叠指的是两个空间类型的交叉部分产生相同维度的几何图形,但不等于g1或g2

10、MBREQUAL:是否相等

11、MBRTOUCHES:存在重合但不相交时返回1,如某个点在一条直线上返回1

本文转自 DBAspace 51CTO博客,原文链接:http://blog.51cto.com/dbaspace/1981227

MySQL引擎特性GIS-R-TREE相关推荐

  1. MySQL · 引擎特性 · InnoDB 崩溃恢复过程

    在前面两期月报中,我们详细介绍了 InnoDB redo log 和 undo log 的相关知识,本文将介绍 InnoDB 在崩溃恢复时的主要流程. 本文代码分析基于 MySQL 5.7.7-RC ...

  2. MySQL · 引擎特性 · InnoDB 事务子系统介绍

    前言 在前面几期关于InnoDB Redo和Undo实现的铺垫后,本节我们从上层的角度来阐述InnoDB的事务子系统是如何实现的,涉及的内容包括:InnoDB的事务相关模块,如何实现MVCC及ACID ...

  3. MySQL · 引擎特性 · InnoDB 事务系统

    MySQL · 引擎特性 · InnoDB 事务系统 前言 关系型数据库的事务机制因其有原子性,一致性等优秀特性深受开发者喜爱,类似的思想已经被应用到很多其他系统上,例如文件系统等.本文主要介绍Inn ...

  4. MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)

    在5.7版本中,InnoDB实现了新的handler的records接口函数,当你需要表上的精确记录个数时,会直接调用该函数进行计算. 使用 实际上records接口函数是在优化阶段调用的,在满足一定 ...

  5. MySQL 引擎特性 · InnoDB Buffer Pool

    前言 用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入 ...

  6. MySQL · 引擎特性 · InnoDB Adaptive hash index介绍

    一 序 先看官网上的介绍(翻译来自MK提丰 ) The adaptive hash index (AHI) lets InnoDB perform more like an in-memory dat ...

  7. MySQL · 引擎特性 · DROP TABLE之binlog解析

    原文链接:点击打开链接 摘要: Drop Table的特殊之处 Drop Table乍一看,与其它DDL 也没什么区别,但当你深入去研究它的时候,发现还是有很多不同.最明显的地方就是DropTable ...

  8. MySQL · 引擎分析 · InnoDB行锁分析

    前言 理解InnoDB行锁,分析一条SQL语句会加什么样的行锁,会锁住哪些数据范围对业务SQL设计和分析线上死锁问题都会有很大帮助.对于InnoDB的行锁,已经有多篇月报进行了介绍,这里笔者借鉴前面月 ...

  9. MySQL高级 - 存储引擎 - 特性

    各种存储引擎特性 下面重点介绍几种常用的存储引擎, 并对比各个存储引擎之间的区别, 如下表所示 : 特点 InnoDB MyISAM MEMORY MERGE NDB 存储限制 64TB 有 有 没有 ...

最新文章

  1. MySQL 到底是怎么解决幻读的?
  2. python全栈_007_Python3格式化输出
  3. publiccms中,怎么修改默认的端口8080以及默认上下文名称
  4. Spring Boot 2.x基础教程:Swagger静态文档的生成
  5. Oracle系统查询的语句
  6. 关于Vmware中的Ubuntu不断弹窗Num Lock的问题
  7. Arcgis小技巧【3】——计算图斑的投影面积和椭球面积
  8. DSP从flash启动
  9. 12306火车票查询——Python
  10. Windows程序意外挂掉,但显存依然被占用
  11. 项目管理(如何进行项目质量管理)
  12. multisim中轻触开关在哪_轻触开关在结构上的三大类型
  13. 【数据结构】直接插入排序以及时间复杂度的分析
  14. CS61A 2022 fall lab0
  15. 水库大坝安全监测监控系统平台xmind分析+辽阳市水库大坝安全检测平台+志豪未来科技有限公司+陈志豪
  16. Jetpack系列之Paging2.0 分页加载
  17. 爱普生(EPSON)喷墨打印机清零工具SSC Service Utility V4.3中文版使用说明(转载)
  18. 见微知著,人脸识别智能门禁带你领略“智慧新高度”
  19. 2021羊城杯CTF wp
  20. 湛江社保与爱赏合作推出手机APP 可用手机查询社保信息

热门文章

  1. 云计算登顶之后,亚马逊人工智能走上新征程
  2. 用于EAM的SAP PM移动应用程序
  3. 「机器学习」机器学习算法优缺点对比(汇总篇)
  4. 10个必备的机器学习开源工具
  5. 英国更注重人工智能基础性研究
  6. 知乎李大海:AI 不只是噱头,满足需求才是真落地
  7. 科普丨深度学习硬件(GPU、FPGA、ASIC、DSP)
  8. 如何使用华为云的计算资源进行深度学习(ModelArts)
  9. 物理如何证明上帝的存在?
  10. 20幅漫画告诉你未来世界是怎样的