PostgreSQL 11 新特性解读: 增加对JIT(just

  • 时间:
  • 浏览:0

安装相关包,如下:

This feature requires LLVM to be available. It is not currently enabled by default, even in builds that support it.

设置环境变量,如下:

LLVM官网下载安装介质,如下:

设置 .bash_profile ,如下:

使用 JIT 还要能在首先编译安装 LLVM ,完后 编译安装 PostgreSQL 时设置 --with-llvm 选项,本文主要包括两累积,如下:

使用 initdb 初始化数据库,如下:

编译安装 LLVM,如下:

完后 启动数据库,如下:

查看版本

JIT 常用于CPU密集型SQL(分析统计SQL),执行放慢的SQL使用JIT但会 产生一定开销,反而但会 引起性能下降。

关闭 JIT,查看执行计划和扫行时间,如下:

最后推荐和张文升一同编写的《PostgreSQL实战》,本书基于PostgreSQL 10 编写,共18章,重点介绍SQL高级形态学 、并行查询、分区表、物理克隆好友、逻辑克隆好友、备份恢复、高可用、性能优化、PostGIS等,涵盖几瓶实战用例!

Add Just-in-Time (JIT) compilation of some parts of query plans to improve execution speed (Andres Freund)

PostgreSQL 11 版本的另另一一两个重量级新形态学 是引入了 JIT (Just-in-Time) 编译来加速SQL中的表达式计算效率单位。

LLVM 的安装步骤较繁琐,但会 编译安装过程时间较长,性能好的机器能减少编译时间,注意操作系统需启用 swap,但会 编译过程中会报错,个人所有所有时候现在开始编译安装时没法启用 swap,折腾了很久。

从以上看出执行计划中涵盖 JIT 编译信息,执行时间为 2154 ms 左右。

JIT 表达式的编译使用LLVM项目编译器的架构来提升在WHERE条件、指定列表、聚合以及这些内部管理操作表达式的编译执行。

操作系统: CentOS Linux release 7.4.1708 (Core)

硬件环境: 8核4G/1000G 的云主机

至此 LLVM 已安装成功。

设置 pg_hba.conf,如下:

开启 JIT,执行计划如下:

以下大致演示 JIT,测试样例很简单,不做充分的性能测试,有兴趣的大伙 还要能 做 TPC-H 性能测试。

购买链接:https://item.jd.com/12405774.html

下载并编译安装 python 2.7.9,如下:

LLVM 安装依赖较多,如下:

创建一张5千万的数据表,如下:

postgresql.conf 设置以下 JIT 配置参数,其它参数按需配置,这里不贴出,如下:

解压 llvm-5.0.2.src.tar.xz

下载并编译安装 cmake 3.12.3,如下:

LLVM 官网的其它安装包非还要能,可根据情况选折 。

从以上看出执行计划中没法涵盖 JIT 信息,执行时间为 2385 ms 左右,开启JIT性能提升了9.7% 左右。

下载PostgreSQL 11 并编译安装,编译时指定 --with-llvm 选项, 如下:

解压安装包并重命名,目录形态学 对应如下,如下: