获取空间数据

存储在表中的几何值可以用内部格式获取,也可以将其转换为WKT或WKB格式。

●获取内部格式的空间数据:

在表到表传输中,使用内部格式获取几何值非常有用:

●获取WKT格式的空间数据:

ST_AsText()函数的作用是:将几何图形从内部格式转换为WKT字符串。

●获取WKB格式的空间数据:

ST_AsBinary()函数的作用是:将几何图形从内部格式转换为包含WKB值的BLOB。

优化空间分析

对于MyISAM和InnoDB表,可以使用SPATIAL索引优化包含空间数据的列的搜索操作。最典型的操作是:

●搜索包含给定点的所有对象的点查询

●搜索与给定区域重叠的所有对象的区域查询

MySQL对空间列上的SPATIAL索引使用具有二次分割的R树。使用几何体的最小边界矩形(MBR)构建SPATIAL索引。对于大多数几何体,MBR是包围几何体的最小矩形。对于水平或垂直的linestring,MBR是一个退化为linestring的矩形。对于一个点,MBR是一个退化为该点的矩形。

也可以在空间列上创建普通索引。在非SPATIAL索引中,必须为除POINT列之外的任何空间列声明一个前缀。

MyISAM和InnoDB同时支持SPATIAL索引和非SPATIAL索引。其他存储引擎支持非SPATIAL索引。

创建空间索引

对于InnoDB和MyISAM表,MySQL可以使用类似于创建常规索引的语法创建空间索引,但是使用SPATIAL关键字。空间索引中的列必须声明为NOT NULL。以下示例演示如何创建空间索引:

●使用 CREATE TABLE:

●使用 ALTER TABLE:

●使用 CREATE INDEX:

SPATIAL INDEX创建R树索引。对于支持空间列的非空间索引的存储引擎,引擎将创建B树索引。空间值上的B树索引对于精确的值查找非常有用,但对于范围扫描则没用。

优化器可以使用有SRID约束的列上定义的空间索引。

要删除空间索引,请使用ALTER TABLE或DROP INDEX:

●使用 ALTER TABLE:

●使用 DROP INDEX:

示例:假设一个表geom包含32000多个几何图形,这些几何图形存储在GEOMETRY类型的g列中。该表还有一个AUTO_INCREMENT列fid,用于存储对象ID值。

要在g列上添加空间索引,请使用以下语句:

使用空间索引

对于WHERE子句使用MBRContains() 或者 MBRWithin()等函数的查询,优化器将调查是否可以在搜索中使用可用的空间索引。以下查询将查找给定矩形中的所有对象:

使用EXPLAIN检查此查询的执行方式:

检查没有空间索引会发生什么:

不使用空间索引执行SELECT语句会产生相同的结果,但会导致执行时间从0.00秒增加到0.46秒:

mysql空间是什么格式_MySQL数据类型 - 空间数据类型 (6)相关推荐

  1. mysql里面integer默认宽度_MySQL中关于数据类型指定宽度之后的情况

    概述 MySQL有很多种数据类型,最常用的就是int,char,varchar,这些类型在创建表的时候都可以指定该字段的宽度,方法是在类型后面加一个括号,括号中写宽度就可以了. 但是,在指定宽度之后, ...

  2. mysql定义日期类型格式_Mysql 日期时间类型详解

    MySQL 中有多种数据类型可以用于日期和时间的表示,不同的版本可能有所差异,表3-2 中列出了MySQL 5.0 中所支持的日期和时间类型. 这些数据类型的主要区别如下:  * 如果要用来表示年月 ...

  3. 数组在mysql中是什么类型_MySQL 中的数据类型介绍

    1.概述 要了解一个数据库,我们也必须了解其支持的数据类型. MySQL支持所有标准的SQL数据类型,主要分3类: 数值类型 字符串类型 时间日期类型 另一类是几何数据类型,用的不多,也没多介绍.  ...

  4. mysql 建表 日期格式_MySQL建表时,日期时间类型选择

    MySQL(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 DA ...

  5. mysql 设置日期时间格式_MySQL:更改列类型和日期时间格式

    我的数据库当前将"日期"列设置为varchar(20),我的日期格式如下: 1/13/2015 20:00 我想在数据库上运行更新以将列类型更改为datetime并将当前日期的格式 ...

  6. mysql字段获取当前日期格式_mysql数据库,获取当前日期及格式化

    MYSQL 获取当前日期及日期格式 获取系统日期: NOW() 格式化日期: DATE_FORMAT(date, format) 注: date:时间字段 format:日期格式 返回系统日期,输出 ...

  7. mysql日志是什么格式_Mysql日志的三种格式

    MySQL binlog格式 binlog的格式也有三种:STATEMENT.ROW.MIXED . 1.STATMENT模式: 基于SQL语句的复制(statement-based replicat ...

  8. mysql查询返回xml格式_MySQL数据库查询操作XML的经验分享

    mysql里面有内置的操作xml的函数.分别是ExtractValue()和UpdateXML()函数. 语法:1EXTRACTVALUE (fiedname, XPathstring); 第一个参数 ...

  9. mysql 设置日期时间格式_mysql 设置时间格式

    MYSQL 获取当前日期及日期格式 获取系统日期:  NOW() 格式化日期:    DATE_FORMAT(date, format) 注:   date:时间字段 format:日期格式 返回系统 ...

最新文章

  1. textrank4zh是_GitHub - 997666901/TextRank4ZH: 从中文文本中自动提取关键词和摘要
  2. 商品管理到底重不重要?
  3. vue 父组件与子组件之间的传值(普通传值)
  4. minio 并发数_c#(asp.net)线程配置总结
  5. 架构师学习笔记(持续更新)
  6. Pads logic 创建文件时发生严重错误
  7. 王国纪元服务器不稳定,王国纪元闪退怎么解决 游戏闪退解决方法
  8. (附源码)springboot超市仓库管理系统 毕业设计164555
  9. 遗传算法(一) 遗传算法的基本原理
  10. 【实战】SpringBoot整合多数据源
  11. 轻量级神经网络架构综述
  12. 基于android的手机商城app
  13. 实现花瓣登陆静态页面
  14. 请将第4章例4-6中的问卷调查结果用文本文件result保存, 并编写程序读该文件然后统计各评语出现的次数,再将最终统计结果追加至esultxt文件中
  15. android模拟器mac版本下载,MaxMac电脑版怎么下载 安卓模拟器电脑版下载地址
  16. Apache 基金会创始成员访谈录 ———— 回顾 Apache 20年历程!
  17. 大数据基础之常用Linux命令
  18. Git | 登录验证失效问题
  19. [bzoj 4833]最小公倍佩尔数
  20. verdi\debussy的使用技巧

热门文章

  1. 卖身字节跳动的互动百科或被改名
  2. 红米手机5怎么样卡刷开发版开启root超级权限
  3. 开发环境中Docker的使用
  4. Hammer.js分析(三)——input.js
  5. OJ1022: 三整数排序
  6. vue项目调用通用组件_详细解析:uniapp项目|vue组件形式实现的科技感loading纯CSS动效...
  7. 信息学奥赛一本通 2034:【例5.1】反序输出
  8. 信息学奥赛一本通(2047:【例5.16】过滤空格)
  9. 乘法逆元(洛谷-P3811)
  10. 训练日志 2018.9.8