关于postgis:源码编译安装postgis

内容概述PG14装置postgis 3.2.1为例子,centos 7.9下postgis是独立发行的pg extension,它依赖于一系列的包,须要独自装置。本文只笼罩起码依赖,有些高级性能依赖的包如SFCGAL等没有波及。 有的依赖包零碎可能曾经装置过了,能够相应的确认版本是否满足要求 yum list |grep geosyum list installed |grep geosyum remove geos选项1:通过yum装置依赖包 # > 0.9sudo yum install json-c# > 2.5sudo yum install libxml2# > 4.9sudo yum install proj# > 3.6sudo yum install geos# > 2sudo yum install gdal选项1:通过源码编译装置依赖包centos装置源版本比拟老,可能不满足要求,须要源码编译装置 mkdir -p /usr/local/libpostgissqlite3 sqlite-autoconf-3380400/./configure --prefix=/usr/local/libpostgis/sqlite3makemake installmv /usr/bin/sqlite3 /usr/bin/sqlite3_oldln -s /usr/local/libpostgis/sqlite3/bin/sqlite3 /usr/bin/sqlite3ll /usr/bin/sqlite3echo "/usr/local/libpostgis/sqlite3/lib" > /etc/ld.so.conf.d/sqlite3.confll /usr/local/libpostgis/sqlite3/ldconfigsqlite3 --versionexport PKG_CONFIG_PATH=/usr/local/libpostgis/sqlite3/lib/pkgconfig:$PKG_CONFIG_PATHproj ./configure --prefix=/usr/local/libpostgis/projmake && make installecho "/usr/local/libpostgis/proj/lib" > /etc/ld.so.conf.d/proj-6.3.1.confldconfigexport PKG_CONFIG_PATH=/usr/local/libpostgis/proj/lib/pkgconfig:$PKG_CONFIG_PATHgeos ./configure --prefix=/usr/local/libpostgis/geosmake && make installecho "/usr/local/libpostgis/geos/lib" > /etc/ld.so.conf.d/geos-3.8.0.confldconfiggdal ...

November 25, 2022 · 1 min · jiezi

关于postgis:浅谈postgresql-uuid生成方法的细节

浅谈postgre-sql uuid生成办法的细节前言 最近在工作中编写业务sql的时候,忽然对于gen_random_uuid() 这个办法比拟好奇,他在高并发的状况下是否领有强一致性的特点(就是保障主键唯一性),趁着感兴趣钻研了一波,发现有不少有意思的货色能够探讨,所以出了这篇文章来聊聊。 前提条件我预计很多读者基本不晓得postgreSql是啥玩意,集体起初接触这个数据库也很顺当,并且这个名字很难记,所以业内人士个别叫读这块数据库为:post-gres-s-q-l,集体比拟习惯叫做 pg-sql,对于这一款数据集体认为几个比较突出的特点: 齐全开源,基于社区保护,并且社区较为沉闷。NoSQL :JSON,JSONB,XML,HStore原生反对,NoSQL数据库的内部数据包装器自从mysql被甲骨文收买之后,mysql的原作者也有参加其中,能够看到不少mysql的影子,比方OLTP和MVCC的实现。然而遗憾的是尽管postgresql看起来全面强于mysql然而不如mysql风行,并且mysql看上去是有很多令人诟病的历史遗留问题,然而仍然不可否认他仍然是当初的支流数据库。好了对于pg-sql这款数据库就唠叨到这里,明天的主题不是介绍这个数据库,所以咱们来看下重点对于postgre-sql生成uuid的办法。 文章目标 对于本文,咱们将会探讨上面几个话题: Gen_random_uuid()怎么来的?PostgreSQL 13: 新增内置函数Gen_random_uuid()生成UUID数据,换句话说这个版本之前须要用手动的装置模式uuid_generate_v4() 有没有可能反复?答案是必定的,哪怕是sql原始的gen_randowm_uuid办法也是存在反复的可能性的,然而存在某些“非凡条件”,上面来一起探讨一下起因。比照gen_randowm_uuid()函数和uuid_generate_v4函数的实现差别。差别次要是生成随机数的形式上,其余工作基本一致。1. Gen_random_uuid()怎么来的? 如果postgre-sql的版本应用的是13之前,会抛出上面的问题: function gen_random_uuid() does not exist 如果想要可能应用此办法,须要应用如下的命令,也就是应用 pgcrypto : CREATE EXTENSION pgcrypto; 上面是postgresql-sql 12版本,会呈现如下的提醒。 # SELECT gen_random_uuid();ERROR: function gen_random_uuid() does not existLINE 1: select gen_random_uuid(); ^HINT: No function matches the given name and argument types. You might need to add explicit type casts.# CREATE EXTENSION pgcrypto;CREATE EXTENSION# SELECT gen_random_uuid(); gen_random_uuid -------------------------------------- 19a12b49-a57a-4f1e-8e66-152be08e6165(1 row) 然而须要留神的是13版本增加的并不是这个库,而是依赖于OSSP库的uuid函数。其实就是gen_random_uuid_v4()这个函数,上面咱们来看下这个函数的介绍。 1.1 gen_random_uuid_v4()官网介绍 函数有什么作用不用多说,上面是对于官网的介绍: ...

December 12, 2021 · 2 min · jiezi