【Postgresql】地理空间数据的存储与查询,查询效率优化策略,数据类型与查询速度的影响

news/2024/9/19 17:17:12/ 标签: postgresql, 数据库

注:使用postgresql数据库会用到PostGIS 扩展。

一、安装PostGIS 扩展

在 PostgreSQL 中遇到错误 “type geography does not exist” 通常意味着你的 PostgreSQL 数据库还没有安装 PostGIS 扩展,或者 PostGIS 扩展没有被正确地安装在你的数据库中。geography 类型是 PostGIS 提供的,用于存储和处理地理空间数据,特别是考虑到地球曲率的地理数据。

要解决这个问题,请按照以下步骤操作:

1、确认 PostGIS 是否已安装

你可以通过查询 PostgreSQL 的扩展列表来确认 PostGIS 是否已经安装在你的数据库中。运行以下 SQL 命令:

SELECT * FROM pg_extension;

如果列表中没有 PostGIS,那么你需要安装它。

2、安装 PostGIS

如果你还没有安装 PostGIS,你可以通过 PostgreSQL 的包管理器(如 apt-get、yum、brew 等,取决于你的操作系统)或者通过 PostgreSQL 的 SQL 命令来安装它。但是,通常建议使用包管理器来安装,因为它会处理所有依赖项。

如果你正在使用 PostgreSQL 的 SQL 命令来安装扩展(这通常是在你已经有了 PostgreSQL 和相应的权限之后),你可以运行以下命令(但请注意,这通常不是安装 PostGIS 扩展的推荐方式,因为它假设你的系统上已经有了 PostGIS 的二进制文件):

CREATE EXTENSION IF NOT EXISTS postgis;

但是,如果 PostGIS 的二进制文件没有在你的 PostgreSQL 的库路径中,这个命令将会失败。

3、使用包管理器安装 PostGIS

根据你的操作系统,你可以使用相应的包管理器来安装 PostGIS。

需要根据postgresql的版本安装对应的postgis

psql --version             #查看postgresql版本  为postgresql 16.*

例如,在 Ubuntu 上,你可以使用 apt-get

sudo apt-get update
sudo apt-get install postgresql-16-postgis-3 # 注意版本号可能不同

在 CentOS 上,你可以使用 yum

sudo yum install postgis30_12 # 注意版本号可能不同

在 macOS 上,如果你使用 Homebrew,你可以安装 PostgreSQL 和 PostGIS:

brew install postgis

但是,对于 macOS 上的 Homebrew,你可能还需要在 PostgreSQL 数据库中手动启用 PostGIS 扩展。

4、先重启数据库,然后在数据库中启用 PostGIS

重启数据库

systemctl restart postgresql

如果你已经通过包管理器安装了 PostGIS,但还没有在你的数据库中启用它,你需要登录到你的 PostgreSQL 数据库,并运行以下 SQL 命令来创建扩展:

CREATE EXTENSION IF NOT EXISTS postgis;

5、使用 SQL 查询

在 PostgreSQL 的命令行工具 psql 中,你可以通过查询数据库来确定 PostGIS 是否已经安装并可用。执行以下 SQL 命令:

SELECT PostGIS_Full_Version();

如果 PostGIS 已安装,这条命令将返回 PostGIS 的完整版本信息。如果返回错误或没有任何输出,则可能表示 PostGIS 没有安装或尚未在数据库中启用。

6、检查 geogra


http://www.ppmy.cn/news/1520641.html

相关文章

(前端)面试300问之(3)this的指向判断

一、this的相关理解与解读 1、各角度看this。 1)ECMAScript规范: this 关键字执行为当前执行环境的 ThisBinding。 2)MDN: In most cases, the value of this is determined by how a function is called. 在绝大多数情况下&…

嵌入式硬件-ARM处理器架构,CPU,SOC片上系统处理器

多进程空间内部分布图:注意:创建线程实际使用堆区空间,栈区独立 ARM处理器架构: 基于ARM920T架构的CPU:以下为哈佛结构 ALU:算数运算器 R0~R12:寄存器 PC:程序计数器,默认为0,做自加运算&#x…

kafka单条消息过大发送失败

一、背景 生产环境中使用kafka作为消息队列,生产者发送消息失败,查询报错日志,得到如下输出: Caused by: org.springframework.kafka.KafkaException: Send failed; nested exception is org.apache.kafka.common.errors.RecordT…

JSON格式化?超简单!

JSON格式化 是指将JSON(JavaScript Object Notation)数据转换成一种更易读、结构化的格式。 在以下场景中,可能需要进行JSON格式化: 调试和开发:在开发过程中,开发人员经常需要查看和解析JSON数据。通过…

基于深度学习的遥感图像分类识别系统,使用PyTorch框架实现

取5个场景 [海滩, 灌木丛, 沙漠, 森林, 草地] 划分数据集 train:val:test 7:2:1 环境依赖 pytorch1.1 or 1.0 tensorboard1.8 tensorboardX pillow 注意调低batch_size参数特别是像我这样的渣渣显卡 使用方法 只需要指…

如何快速采集淘宝商品数据?

无论是谁,如果单凭人工的方式去收集淘宝、天猫等平台的商品数据信息,工作量是巨大的,如果借助有采集软件的第三方公司操作,则可实现对大数据的轻松掌握,但是外包给第三方公司需要支付一定的费用,包含技术费…

Canvas 在 微信小程序-uni-APP 和 H5 中的使用差异

Canvas 是一个强大的绘图工具,无论是在 Web 开发还是跨平台应用开发中都有广泛应用。然而,在 uni-APP 和传统 H5 环境中使用 Canvas 时,存在一些重要的差异。本文将深入探讨这些差异,帮助开发者在不同平台上更好地使用 Canvas。 1. API 差异 H5 环境 在 H5 环境中,我们使用标…

十四、低空安全综合管理服务平台建设方案

1、系统背景 由于低空安全研究关系到国家战略安全保障,世界各国相继开展了相关法律法规建设,以及一系列的理论与技术保障研究。为了保障低空空域安全,需推动建立各省级安全管理平台,做好与企业级监控服务平台的管理衔接和数据共享,强化本区域内民用无人机的安全监管工作;…

vue大屏可视化:4k带鱼屏、4k、2k、1920*1080、笔记本 全适配方案

本方案采用的是媒体查询的方法来实现的 css媒体查询书写(可按照自己需求新增)不同尺寸下显示不同的文字大小图片大小等: // 4K 带鱼屏 media screen and (max-width: 3840px) and (max-height: 1080px) {} // 4K media screen and (max-widt…

计算机网络(八股文)

这里写目录标题 计算机网络一、网络分层模型1. TCP/IP四层架构和OSI七层架构⭐️⭐️⭐️⭐️⭐️2. 为什么网络要分层?⭐️⭐️⭐️3. 各层都有那些协议?⭐️⭐️⭐️⭐️ 二、HTTP【重要】1. http状态码?⭐️⭐️⭐️2. 从输入URL到页面展示…

基于 web教学管理系统设计与实现

3 总体设计 3.1 系统软件体系结构 系统采用B/S结构,统一管理数据库和Web服务器。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构,第一…

安装Selenium进行web⾃动化测试

目录 驱动安装驱动管理工具selenium安装selenium驱动浏览器的⼯作原理自动化测试常⽤函数1. 元素定位1.1. find_element 的基本用法1.2. 常见的 find_element 定位方式1.3. find_element 的使用注意事项1.4. find_element 的进阶用法 2. 操作测试对象3. 窗口操作4. 弹窗处理5. …

Hive整合MySQL

目录 Hive整合MySQL 安装MySQL 1)上传MySQL安装包以及MySQL驱动jar包 2)解压MySQL安装包 3)卸载系统自带的mariadb 4)安装MySQL依赖 5)安装mysql-client 6)安装mysql-server 7)启动MySQ…

Maven与Gradle差异

作为Java 开发者,你平时用 Maven 还是 Gradle? 我一直用的都是 Maven,但是前几天做了一个小项目,用的是 Gradle,因工作需要就去了解了Gradle的相关信息。 直到看到 Spring 和 Spring Boot 都从 Maven 切换到 Gradle了…

IPSec 参数

IPSec抗重放: 抗重放窗口: ChatGPT 说: ChatGPT 在 IPSec(Internet Protocol Security)中,“抗重放”机制是一种用于防止重放攻击的安全功能。重放攻击是一种攻击形式,攻击者捕获合法的网络通…

大数据技术之Flume 参数调优(12)

目录 1. Source 调优 增加 Source 个数 调整 batchSize 参数 2. Channel 调优 选择 Channel 类型 配置 dataDirs 参数 设置 Capacity 和 transactionCapacity 参数 3. Sink 调优 增加 Sink 个数 调整 batchSize 参数 4. Flume 的事务机制 事务处理 5. 数据丢失与重…

Linux中的编译器gcc/g++

目录 一、gcc与g的区别 1.gcc编译器使用 2.g编译器使用 二、gcc/g编译器编译源文件过程 1.预处理 2.编译 3.汇编 4.链接 三、静态库和动态库 1.库中的头文件作用 2.静态库 3.动态库 四、gcc编译器的一些选项命令 一、gcc与g的区别 gcc用于编译C语言代码&#xff…

Power Automate向Power Apps传Table数据

Flow返回查询的数据表并返回Apps 场景介绍代码开发Power Automate开发数据库Power Automate调用存储过程 Power Apps开发代码开发 测试 场景介绍 我们通常会使用Flow 查询数据表然后Apps端将表中的数据显示出来,我们怎么来传呢,它自带的response for Po…

揭秘GLM-130B爆火秘诀:颠覆性自回归填空和二维位置编码的训练黑科技

GLM(通用语言模型)的训练过程确实复杂,尤其是涉及到其独特的预训练目标和架构调整。让我来详细解释一下GLM的训练过程。 1. 模型架构简介 GLM-130B 是基于 Transformer 架构的双语(中文和英文)语言模型,拥…

仕考网:应届生考公务员的优势

应届生报考公职存在显著优势,建议大家充分利用这一身份: 1.政策优惠 在不缴纳社保的前提下,应届毕业生可在两年内利用此身份参与各类公职考试。国考及省考中,大量岗位专为应届生设置,其中国考约有三分之一的职位仅限…