PostgreSQL bitmap scan的IO放大的原理解释和优化
背景 PostgreSQL 支持9种索引接口: 《PostgreSQL 9种索引的原理和应用场景》 每一种索引的结构,适合的数据类型,适合的查询场景都不一样。 对于多值类型(例如 K-V,数组、全文检索 类型),我们可以选择GIN倒排索引接口,GIN使用的扫描方法是bitmap scan的扫描方法。 实际...
背景 PostgreSQL 支持9种索引接口: 《PostgreSQL 9种索引的原理和应用场景》 每一种索引的结构,适合的数据类型,适合的查询场景都不一样。 对于多值类型(例如 K-V,数组、全文检索 类型),我们可以选择GIN倒排索引接口,GIN使用的扫描方法是bitmap scan的扫描方法。 实际...
背景 pgafis是一个插件,支持存储指纹特征值,同时将指纹特征比对算法作为UDF编写到了数据库中,安装这个插件依赖指纹比对算法库。 https://www.nist.gov/services-resources/software/nist-biometric-image-software-nbis http...
背景 PostgreSQL 商用版本EPAS( 阿里云ppas ),如何自己部署一套PPAS数据库在客户端进行测试? 部署PPAS数据库 配置操作系统 (为了更好的性能、稳定性): 可以参考以下文章中的OS配置部分(主要包括sysctl.conf, limit等配置): 《PostgreSQL 10 on ...
背景 PostgreSQL 数据库与商用数据库Oracle一样,支持绑定变量,绑定变量的目的是降低SQL硬解析的性能开销。 使用绑定变量后,执行变成这样的流程,一次prepare,后面都只需要bind和execute: prepare bind execut...
背景 PostgreSQL通过 pg_trgm插件,可以支持正则表达式、LIKE 前后模糊查询。 (要支持中文的话,必须确保lc_ctype <> C) 《中文模糊查询性能优化 by PostgreSQL trgm》 从语义上来讲,以下两个查询的语义是一样的。 select * from te...
背景 KML(Keyhole Markup Language) 是一种文件格式,用于在地球浏览器(例如 Google 地球、Google 地图和 Google 地图移动版)中显示地理数据。KML 使用包含嵌套的元素和属性的结构(基于标记),并符合 XML 标准。 由于KML已经加入OGC标准,所以作为OGC的成...
背景 从OpenStreetMap下载地图数据,使用osm2pgsql可以将数据导入PostgreSQL数据库,结合PostGIS插件,实现POI的业务。 如果要提取POI(兴趣点)数据,可以使用osmosis工具,处理OSM导出的文件。 https://github.com/openstreetmap/os...
背景 在使用PG 9.6以前的版本时,freeze带来的IOPS影响较大,体现在数据文件读写、WAL日志大量产生。 原因是9.6以前的版本,当表的年龄达到一定的阈值后(全局参数或表级参数控制),会触发freeze的动作,扫描全表,同时有可能(如果BLOCK被FREEZE的话)产生WAL(越大的表,带来的IO越大...
背景 作者:凌络 在去年的DBMS评比中,PostgreSQL夺冠,PostgreSQL一直保持上升姿态,越来越多的客户选择使用PostgreSQL,还有一部分客户从MySQL迁往PostgreSQL,那PostgreSQL和MySQL对于开发者来说的差异在哪里呢?末学对比了下语法差异,不一样的地方用红色标记了...
背景 作者:凌络 在去年的DBMS评比中,PostgreSQL夺冠,PostgreSQL一直保持上升姿态,越来越多的客户选择使用PostgreSQL,还有一部分客户从MySQL迁往PostgreSQL,那PostgreSQL和MySQL对于开发者来说的差异在哪里呢?我们先看下数据类型。 数据类型 看着不方...