PostgreSQL Executor(7): JIT

PostgreSQL 11版本有一个和性能提升相关的重要特性:对JIT(just-in-time)编译的支持。在TPC-H等数据库测试中,发现用于PostgreSQL的JIT编译表达式速度快了不止20%。在这种JIT模式下,创建索引的速度甚至可以提高 5~19%。

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

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

参考1:https://yq.aliyun.com/articles/672471

参考2:http://llvm.org/devmtg/2016-09/slides/Melnik-PostgreSQLLLVM.pdf

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 PostgreSQL 11 LLVM JIT,目前支持tuple deform(将磁盘上的tuple转换为内...
    hemny阅读 1,723评论 0 4
  • 由PostgreSQL全球开发组发布于2019-05-23 PostgreSQL全球开发组宣布PostgreSQL...
    磐石数据阅读 1,121评论 0 0
  • LLVM (底层虚拟机 Low-Level Virtual Machine),这是一个开源项目,最开始作为伊利诺伊...
    XLsn0w阅读 1,650评论 0 1
  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 824评论 0 3
  • 注意多培养孩子为自己争取权利的本领,不要听话的孩子,要有思想的孩子。不能用哭来达到目的,要用能说服父母的理由。 突...
    冰糖糖冰阅读 180评论 3 0