MySQL空间索引

news2024/11/13 14:35:59

  空间类型是建立在空间类型字段上的。

空间类型

  MySQL的空间类型很多,我就不逐一介绍了。重要分四大类:

  1. Geometry
  2. Curve
  3. Surface
  4. GeometryCollection

  前三种,地理、曲线、曲面都是不可实例化的。Geometry有一个子类Point, Curve有一个直接子类LineString,而Surface也只有一个子类Polygon.当然从广义上讲,Cureve, Sureface,GeometryCollection都是Geometry的子类。

SRID

  对于空间类型字段来说,一个非常重要的属性是SRID,SRID 0代表平面笛卡尔坐标系。此外4326代表地球经纬度类型,也是非常常用的,要表示经纬度,记住4326就行。

建表测试

  有了前面的知识,我们就可以开始建表测试了。空间索引要求字段非空,所以定义时需要定义not null字段。以下是SQL:

create table city (
    id integer primary key auto_increment,
    position point not null srid 4326 comment '位置',
    spatial index position_index(position)
) comment '城市';

  因为数据定义时是地球表面的坐标系,所以需要用ST_SRID函数指定SRID为4326.

insert into city(name, position) VALUE
    ('北京', ST_SRID(point(116.3912757 ,39.906217),4326) );

  查询就是比较痛苦了,代码特别长,这种代码还是用java或Python等语言生成才好:

select name, st_astext(position) from city where MBRCONTAINS(
                                 st_srid(ST_GEOMETRYFROMTEXT('polygon((100 20, 120 20, 120 40, 100 40, 100 20))'),4326),
                                 st_srid(position, 4326))

  查询结果如下:在这里插入图片描述

索引

  那么命中了索引吗?
在这里插入图片描述
  毫无疑问,是没命中索引的,我也不知道是什么原因啊,还需要继续研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1926661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ceph 部署

端口号 NFS 2049 rpcbind 111 NFS 目录越深,写入性能越差 操作简单, 一.前言:存储知识 1、存储基础 单机存储设备 【1】DAS(直接附加存储,是直接接到计算机的主板总线上去的存储) IDE、SATA、SCSI、SAS…

springsecurity 身份认证

Spring Security简介 是一个功能强大且高度可定制的安全框架,它主要为Java程序提供声明式的身份验证(认证)和访问控制(授权)功能为基于Spring的企业应用系统提供了全面的安全解决方案,通过声明式的方式管理…

Windows中安装python/cmd中执行python命令无效

1、问题阐述? 本文章提供非常详细的安装教程。 本文章适合于不会安装python或者安装了python后,在cmd中执行python命令无效的情况。 2、下载python python下载官网地址:Download Python | Python.org 在下面的框子中选择你需要的版本 如果是windows选择如下包 如下版本…

基于Jetpack Compose实现的Android Preference

基于Jetpack Compose实现的Android Preference Jetpack Compose实现的Android偏好Preference实现,实现了CheckBoxPreference、EditTextPreference、SingleChoicePreference、SliderPreference等常见的 Preference 类型, 代码如下: 基类Preference :@Composable fun Prefer…

JMeter中进行JDBC协议压测

在使用Jmeter进行性能测试的时候,不仅是需要对业务的接口进行性能并发测试,有的时候还需要专门对服务器进行压测,比如本次给大家介绍的对数据库进行压测. 在JMeter中进行JDBC协议压测,你需要做以下几个步骤: 如何选择JDBC驱动程序 (1).掌握项目所采用…

泉盛UV-K5扩容2Mbit EEPROM

泉盛UV-K5扩容2Mbit EEPROM 步骤 分离前面板与背板。 拆下电池,底部有个空隙,从缝隙撬开背板。分离前面板时注意喇叭连接线,不要扯断了。 分离屏幕。 先从箭头位置向上挑起,屏幕稍微松动即可左右晃动,直至完全取出。注…

记一次docker容器安装MySQL,navicat无法连接报错(10060错误)

今天在云服务器上使用docker部署mysql 8.0.11时,遇到了一个诡异的问题,在云服务器的docker容器内可以连接上mysql,然而在自己电脑上连接mysql时报错:Can‘t connect to MySQL server on localhost (10060) 下面是网上搜寻的几种可…

知识图谱与LLMs:实时图分析(通过其关系的上下文理解数据点)

大型语言模型 (LLM) 极大地改变了普通人获取数据的方式。不到一年前,访问公司数据需要具备技术技能,包括熟练掌握各种仪表板工具,甚至深入研究数据库查询语言的复杂性。然而,随着 ChatGPT 等 LLM 的兴起,随着所谓的检索…

第17集《修习止观坐禅法要》

请大家打开讲义第四十二面,丁六、正修行第六。 这个是我们小止观正宗分的第六科,前面的五科是一个方便,是我们在修习止观的一个前方便,这一科是说明修习止观的正式的方法。 这个方便跟正修的关系,我们可以讲一个譬喻…

keepalive:

keepalive: 调度器的高可用 vip地址在主备之间的切换,主在工作时,vip地址只在主上,主停止工作,vip漂移到备服务器。 在主备的优先级不变的情况下,主恢复工作,vip会飘回到主服务器。 1、配优…

音视频开发—使用FFmpeg将YUV文件编码成H264裸流文件 C语言实现

文章目录 1.准备工作2.压缩编码工作流程3.详细步骤1. 初始化日志和参数检查2. 输入/输出文件的打开3. 查找和初始化编码器4. 打开编码器5. 帧内存的分配和初始化6. 设置转换上下文(SWS)7. 读取和转换数据8. 编码过程9. 资源清理 4.完整示例代码 1.准备工…

AI大模型探索之旅:深潜大语言模型的训练秘境

在人工智能的浩瀚星空中,大语言模型无疑是最耀眼的星辰之一,它们以无与伦比的语言理解与生成能力,引领着智能交互的新纪元。本文将带您踏上一场探索之旅,深入大语言模型的训练秘境,揭开其背后复杂而精妙的全景画卷。 …

Qt Quick qml自定义控件:qml实现电池控件

qml入门进阶专栏地址:https://blog.csdn.net/yao_hou/category_9951228.html?spm=1001.2014.3001.5482 本篇博客介绍如何使用qml来实现电池控件,效果图如下: 下面给出实现代码 Battery.qml /*电池组件*/import QtQuick 2.15 import QtQuick.Controls 2.15Rectangle {id: b…

Maven学习笔记——如何在pom.xml中通过坐标为项目导入jar包

注意:我们只导入了一个jar包坐标,但右边项目中确多出来了好几个jar包,这是因为我们导入的该jar包所依赖其他jar包,maven自动帮我们导入了进来

Android-- 集成谷歌地图

引言 项目需求需要在谷歌地图: 地图展示,设备点聚合,设备站点,绘制点和区域等功能。 我只针对我涉及到的技术做一下总结,希望能帮到开始接触谷歌地图的伙伴们。 集成步骤 1、在项目的modle的build.gradle中添加依赖如…

Java软件设计模式-单例设计模式

目录 1.软件设计模式的概念 2.设计模式分类 2.1 创建型模式 2.2 结构型模式 2.3 行为型模式 3.单例设计模式 3.1 单例模式的结构 3.2 单例模式的实现 3.2.1 饿汉式-方式1(静态变量方式) 3.2.2 懒汉式-方式1(线程不安全) 3.…

【linux】安装cuda11.0、cuDNN教程,简单易懂,包教包会

【linux】安装cuda11.0、cuDNN教程,简单易懂,包教包会 【创作不易,求点赞关注收藏】 文章目录 【linux】安装cuda11.0、cuDNN教程,简单易懂,包教包会一、版本情况介绍二、安装cuda1、到官网找到对应版本进行安装2、对…

【openwrt】Openwrt系统新增普通用户指南

文章目录 1 如何新增普通用户2 如何以普通用户权限运行服务3 普通用户如何访问root账户的ubus服务4 其他权限控制5 参考 Openwrt系统在默认情况下只提供一个 root账户,所有的服务都是以 root权限运行的,包括 WebUI也是通过root账户访问的,…

使用EndNote添加参考文献,如何区分中英文文献的et al和等?

一、背景 我们在用EndNote添加参考文献时,如遇到超过3个作者,需列出前三位作者,其余用“et al”代替。 但中文文献用“et al”显示不合适,如下图所示,需要用“等”代替。 二、中文参考文献大于3个作者,用等…

5G数字化转型redcap助您“轻”装上阵

RedCap(Reduced Capability)技术,也称为NR-Light,是针对5G网络的一种轻量化技术规范,旨在为具有较低性能要求的设备提供5G连接。 RedCap技术特点 低成本 降低芯片组和设备成本:RedCap通过减少终端带宽、收…