Postgres 10 开发者新特性

简介: 目前非常流行的RDBMS PostgresSQL已经在几周前发布了它的第10个版本。由于Postgres的可靠性、节约成本、成熟,当然还有它的开源,已经21岁的Postgres在开发者之中仍旧非常流行。

目前非常流行的RDBMS PostgresSQL已经在几周前发布了它的第10个版本。由于Postgres的可靠性、节约成本、成熟,当然还有它的开源,已经21岁的Postgres在开发者之中仍旧非常流行。

PostgreSQL 10.0

Postgres 10带来了一些新特性,其中一些特性另开发者感到十分兴奋。10Clouds博客中详细介绍了其中的一些特性。通过消除主表(master table)中触发器(trigger)的需求,本地分区(native partitioning)现在变得更简单了。这意味着创建分区表将变得更简单,并且从开发者的角度来看,现在从分区数据表中进行查询和插入与在非分区的数据表进行这些操作是完全一致的。

多列统计(multicolumn statistics)是Postgres 10的另一项改进。通过把来自不同列的数据关联起来,查询规划器(query planner)现在可以避免一些边缘情况,在那些边缘情况下,之前的Postgres版本会认为WHERE语句更强的选择性,并且会导致选择了错误计划从而拖慢执行时间。Postgres的这个改进在整个SQL世界中都是极具创新性的。

Postgres 10还对并行性进行了改进。开发者现在可以使用索引扫描(index scans)和仅索引扫描(index-only scans)、并行合并连接(merge joint)以及位图堆扫描。并行查询是通过不同的workers来实现的,因此在某些情况下,设置和分解的成本会超过并行化的好处。默认情况下,可以在大于8MB大小的表以及大于512KB的索引上启用并行表扫描(parallel table scan),但是这些选项可以根据需要进行配置。

Postgres 10另一个重要的新特性是支持JSON和JSONB类型列的全文搜索。一旦我们创建了一个特定语言的全文索引,我们就可以通过JSON字段对值进行直接搜索。在JSON列上的全文索引与其他列是类似的,因此我们的查询需要使用to_tsquery函数和to_tsvector函数的文本搜索的语法。

标识列(Identity columns)和自增列(Auto-increment columns)也是Postgres 10进行改进的一个地方。新的实现方法会有一点冗长,但是它是符合SQL标准的,使得在不同数据库之间的迁移会更加容易。最重要的是,使用Postgres 10时,我们在从一个不同的id重启时,不再需要修改序列(alter sequences)了,但是我们可以对这一列进行修改(alter),Postgres就会将这一列识别为一个序列,这样操作会简化我们数据库中的日常操作。

正如我们预料到的那样,Postgres 10存在一些不向后兼容的改动。对浮点时间戳的支持已经被抛弃了,对于低于版本8的 pg_dump也已经不再提供支持,有关复制(replication)和pg_basebackup工具的一些默认值也有所变化。版本编号由三部分改为了两部分,同时开发者的脚本不能直接运行,而是使用类似于server_version_num这种查询,它返回的是一致的的可排序的和可比较的(sortable and comparable)版本号。


原文发布时间:2017-12-30
本文来自云栖社区合作伙伴“ Debian社区”,了解相关信息可以关注“ Debian社区”。
相关文章
|
6月前
|
Web App开发 编解码 算法
怎么实现实时无延迟的体育电竞动画直播
实时无延迟动画直播需关注技术方案、实现步骤与专业解决方案。技术上可选WebRTC(低至100-500ms延迟,互动性强)、低延迟HLS/CMAF(1-3秒延迟,兼容性好)和RTMP(传统协议,2-5秒延迟)。实现步骤包括采集端设置(高性能编码、稳定网络)、传输优化(CDN节点选择、抗丢包协议)及播放端优化(低延迟模式、自适应码率)。专业方案有云服务(AWS、Azure、阿里云)和专用平台(Millicast、Wowza)。注意完全无延迟不可行,需权衡画质与稳定性,并考虑终端兼容性和成本。代码示例展示了比赛数据处理逻辑,涉及匹配ID、状态、计划与关注等功能。
333 11
|
9月前
|
SEO
网站综合网查询工具源码
网站综合网查询工具源码
1298 10
网站综合网查询工具源码
|
Linux Python
Linux 修改 pip 源
Linux 修改 pip 源
469 0
|
缓存 关系型数据库 Linux
快速学会rpm安装yum本地源配置,源码安装,查看用户进程
RPM是红帽包管理(Redhat Package Manager)的缩写。 由Red Hat公司提出的一种软件包管理标准。 是Linux各发行版中应用最广泛的软件包格式之一(还有debian的发行版deb安装包)。 RPM功能通过rpm命令使用不同参数来实现。
679 0
|
C语言
C语言:字符指针
字符指针是存放字符地址的指针
130 0
|
弹性计算 Linux 开发工具
阿里云学生服务器购买流程与学生认证条件详解!
阿里云学生服务器购买流程与学生认证条件详解!如果你从未参与过阿里云高校学生免费领取ECS的活动,在通过学生身份认证及续费任务后,最多可领取1+6个月免费云服务器ECS资源
347 0
|
供应链 前端开发 算法
口碑饿了么登“三楼”俯攻,本地生活服务巷战升级!
在近40度高温的炙烤下,比地表更火热的,可能是今夏本地生活服务领域的巷战。 以高频餐饮消费为核心,本地生活的服务边界正在持续扩张。而其万亿级市场背后的经济账,早已令本地生活服务平台们蠢蠢欲动。 一年已过半,玩家们相互赶超须看这关键的夏季三月。在今年,以口碑饿了么正在将数字化推至街头巷尾。
349 0
口碑饿了么登“三楼”俯攻,本地生活服务巷战升级!
|
14天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾