PolarDB for PostgreSQL 14:全局索引

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: PolarDB for PostgreSQL 14 相较于 PostgreSQL 14,提供了更多企业级数据库的特性。本实验将体验其中的全局索引功能。

PolarDB for PostgreSQL 14:全局索引

1. 选择实验资源

本实验支持实验资源体验、开通免费试用、个人账户资源三种实验资源方式。

在实验开始前,请您选择其中一种实验资源,单击确认开启实验

如果您选择的是实验资源体验,资源创建过程需要3~5分钟(视资源不同开通时间有所差异,ACK等资源开通时间较长)。完成实验资源的创建后,在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等)。

说明:实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。

如果您选择的是开通免费试用,下方卡片会展示本实验支持的试用规格,可以选择你要试用的云产品资源进行开通。您在实验过程中,可以随时用右下角icon唤起试用卡片。

说明:试用云产品开通在您的个人账号下,并占用您的试用权益如试用超出免费试用额度,可能会产生一定费用。

阿里云支持试用的产品列表、权益及具体规则说明请参考开发者试用中心


2. 领取免费试用资源

说明:

试用云产品开通在您的个人账号下,并占用您的试用权益。如试用超出免费试用额度,可能会产生一定费用。阿里云支持试用的产品列表、权益及具体规则说明请参考开发者试用中心

如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。

在实验开始前,请您选择开通免费试用

开通云原生数据库PolarDB PostgreSQL版免费试用。

2.1 在实验室页面下方,选择云原生数据库PolarDB PostgreSQL版,单击立即试用

2.2 在云原生数据库PolarDB PostgreSQL版面板,参考如下说明完成参数配置,未提及的配置保持默认选项,选中服务协议,然后单击立即试用,如弹出新的页面,您可先忽略。

参数说明:

配置项

示例

说明

地域

华东1(杭州)

选择实例所在地域。

VPC网络和交换机

  • 如果您已创建符合您网络规划的VPC和交换机,直接选择该VPC和交换机。
  • 如果您未创建符合您网络规划的VPC和交换机,可以使用默认的VPC和交换机。
  • 如果以上已创建的和默认的VPC和交换机无法满足您的要求,可以自行创建VPC和交换机,详情请参见创建和管理专有网络

选择您的VPC网络和交换机。

2.3 前往PolarDB控制台

2.4 在集群列表页面,您需要耐心等待10~15分钟,运行状态变为运行中,您就可以正常使用云原生数据库PolarDB PostgreSQL集群。

领取完免费试用后,返回资源领取界面,单击我已开通,进入实验


3. 创建实验资源

注意事项:当您选择个人资源时,需要您根据如下步骤创建云原生数据库PolarDB PostgreSQL版,并会产生部分费用,详情请参见计费概述

前往PolarDB控制台

在集群列表页面,单击创建新集群

基础配置页面,根据如下说明配置参数,未提及的配置保持默认选项或根据需求自行选择,单击下一步:集群配置

参数说明:

参数

示例

说明

地域

华东1(杭州)

集群所在的地理位置。购买后无法更换地域。

创建方式

创建主集群

创建PolarDB集群的方式。

  • 创建主集群:创建一个全新的PolarDB集群。
  • 从回收站恢复:您可以通过从回收站中恢复已删除集群的备份来创建新集群。
    • 原版本:已删除集群的版本。
    • 已删除集群:已删除的集群名称。
    • 历史备份:选择想要恢复的备份

说明:其他选项用于创建其它引擎的数据库。

数据库引擎

PostgreSQL兼容

PostgreSQL14

  • PostgreSQL 11(与PostgreSQL 11 完全兼容)。
  • PostgreSQL 14(与PostgreSQL 14 完全兼容)。

说明:

  • 当前华北1(青岛)、英国(伦敦)和澳大利亚(悉尼)四个地域暂不支持PostgreSQL 11PostgreSQL 14兼容Oracle语法
  • PostgreSQL 14版本当前处于试用阶段。如有需求,请点击此处申请试用。

开启热备集群

开启存储热备

如果开启存储热备集群,PolarDB会在Region内同时部署主集群(包含互备计算节点+存储主集群)和存储热备集群,存储主集群和存储热备集群各 3 副本(共 6 副本数据),更高SLA可靠性保障。

如果不开启存储热备集群,则仅保留主集群( 3 副本数据),存储单价会是开启存储热备集群单价的 1/2。

节点规格

2核8 GB,规格代码为polar.mysql.x4.medium

按需选择。所有PolarDB节点均为独享型,性能稳定可靠。

更多关于计算节点规格的详情,请参见规格与定价

集群配置页面,根据如下说明配置参数,未提及的配置保持默认选项或根据需求自行选择,单击下一步:确认订单

参数说明:

参数

示例

说明

网络类型

固定为VPC专有网络,无需选择。

固定为VPC专有网络,无需选择。

VPC网络

VPC交换机

选择VPC网络和交换机。

请确保PolarDB与需要连接的ECS创建于同一个VPC,否则它们无法通过内网互通,无法发挥最佳性能

  • 如果您已创建符合您网络规划的VPC,直接选择该VPC。例如,如果您已创建ECS,且该ECS所在的VPC符合您的规划,那么选择该VPC
  • 如果您未创建符合您网络规划的VPC,您可以使用默认VPC和交换机:
    • 默认VPC:
      • 在您选择的地域中是唯一的。
      • 网段掩码是16位,如172.31.0.0/16,最多可提供65536个私网IP地址。
      • 不占用阿里云为您分配的VPC配额。
    • 默认交换机:
      • 在您选择的可用区中是唯一的。
      • 网段掩码是20位,如172.16.0.0/20,最多可提供4096个私网IP地址
      • 不占用VPC中可创建交换机的配额
  • 如果以上默认VPC和交换机无法满足您的要求,您可以自行创建VPC和交换机,详情请参见创建和管理专有网络

确认订单页面,选中服务协议,单击立即购买

在开通完成页面,单击管理控制台

集群列表页面,您需要耐心等待10~15分钟,运行状态变为运行中,您就可以正常使用云原生数据库PolarDB PostgreSQL集群。


4. 创建用户并登录到DMS

双击打开远程桌面的Chromium网页浏览器

在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码用户密码输入框,单击登录

复制下方地址,在Chromium网页浏览器打开新页签,粘贴并访问云数据库PolarDB控制台。

https://polardb.console.aliyun.com/

集群列表页面顶部菜单栏中,切换资源所在地域。

说明:您可在云产品资源列表中查看实验室提供的PolarDB for PostgreSQL资源所在地域。

集群列表页面,找到实验室提供的集群,单击集群ID

在左侧导航栏中,选择配置与管理>账号管理

对于一个新实例来说,我们需要创建一个新的用户才可以使用PolarDB实例。

账号管理页面,单击创建账号

创建账号面板,参开如下说明配置参数,然后单击确定

参数说明:

账号名:自定义账号名,本教程以polardb

账号类型:选择高权限账号

密码:自定义密码,本教程以Password123为例。

确认密码:再次输入密码。

另外,如果需要使用自己的客户端来连接阿里云上的PolarDB实例,还需要配置客户端的IP地址白名单。只有在这个白名单中的IP地址才可以连接到PolarDB上。在本实验中,我们可以直接使用阿里云数据库的DMS(数据管理服务),连接到数据库。这样就会使用DMS的内部IP地址来连接数据库,是不需要配置IP白名单的。

账号管理页面,单击页面上方的登录数据库

登录实例对话框中,输入您刚刚创建的数据库账号数据库密码,单击测试连接

成功对话框中,单击确认

登录实例对话框中,单击登录

返回如下页面,表示您已成功通过DMS连接默认数据库postgres。


5. 创建用户并登录到DMS

说明:本实验需要使用数据管理DMS,请如果您未开通DMS服务,请先开通DMS服务。

前往PolarDB控制台

集群列表页面,找到实验室提供的集群,单击集群ID

在左侧导航栏中,选择配置与管理>账号管理

对于一个新实例来说,我们需要创建一个新的用户才可以使用PolarDB实例。

账号管理页面,单击创建账号

创建账号面板,参开如下说明配置参数,然后单击确定

参数说明:

账号名:自定义账号名,本教程以polardb

账号类型:选择高权限账号

密码:自定义密码,本教程以Password123为例。

确认密码:再次输入密码。

另外,如果需要使用自己的客户端来连接阿里云上的PolarDB实例,还需要配置客户端的IP地址白名单。只有在这个白名单中的IP地址才可以连接到PolarDB上。在本实验中,我们可以直接使用阿里云数据库的DMS(数据管理服务),连接到数据库。这样就会使用DMS的内部IP地址来连接数据库,是不需要配置IP白名单的。

账号管理页面,单击页面上方的登录数据库

登录实例对话框中,输入您刚刚创建的数据库账号数据库密码,单击测试连接

成功对话框中,单击确认

登录实例对话框中,单击登录

返回如下页面,表示您已成功通过DMS连接默认数据库postgres。


6. 准备数据

接下来,我们以一个使用分区表的典型场景为例:用户有着大量的时序数据,越近产生的数据被访问得越频繁,旧的数据基本很少被访问。这时,可以将数据以时间列作为分区键,使用范围分区策略对数据进行分区。

创建一个范围分区的分区表,分区键为时间列。

在SQLConsole页签中,输入以下SQL语句,单击执行。

CREATE TABLE partition_range (
    id INT,
    created_date TIMESTAMP WITHOUT TIME ZONE
) PARTITION BY RANGE (created_date);

以月为单位,为这个分区表创建四个子分区。

在SQLConsole页签中,输入以下SQL语句,单击执行。

CREATE TABLE partition_range_part01 PARTITION OF partition_range FOR VALUES FROM (MINVALUE) TO ('2020-01-01 00:00:00');
CREATE TABLE partition_range_part02 PARTITION OF partition_range FOR VALUES FROM ('2020-01-01 00:00:00') TO ('2020-02-01 00:00:00');
CREATE TABLE partition_range_part03 PARTITION OF partition_range FOR VALUES FROM ('2020-02-01 00:00:00') TO ('2020-03-01 00:00:00');
CREATE TABLE partition_range_part04 PARTITION OF partition_range FOR VALUES FROM ('2020-03-01 00:00:00') TO ('2020-04-01 00:00:00');

接下来,为每一个子分区插入数据,这四条INSERT语句将分别把数据插入到四个子分区中。

在SQLConsole页签中,输入以下SQL语句,单击执行。

INSERT INTO partition_range VALUES (generate_series(1,1000000),'2019-01-01 00:00:00');
INSERT INTO partition_range VALUES (generate_series(1,1000000),'2020-01-01 00:00:00');
INSERT INTO partition_range VALUES (generate_series(1,1000000),'2020-02-01 00:00:00');
INSERT INTO partition_range VALUES (generate_series(1,1000000),'2020-03-01 00:00:00');


7. 使用分区键进行查询

当对分区表进行全表扫描时,数据库将对每一个子分区进行扫描。

在SQLConsole页签中,输入以下SQL语句,单击执行计划,此时我们可以查看这个查询SQL的执行计划,其中使用了Append算子汇聚了从每个子分区扫描到的数据:

SELECT * FROM partition_range;

而当我们在查询过滤条件中使用分区键时,数据库优化器将通过分区裁剪,只扫描符合条件的子分区,显著减少需要扫描的数据量。在这个实例中,如果我们以某个特定的时间范围对分区表进行扫描,优化器将根据这个时间范围,过滤掉不满足时间范围的子分区。

在SQLConsole页签中,输入以下SQL语句,单击执行计划,可以看到只有满足条件的一个子分区将被扫描。

SELECT * FROM partition_range WHERE created_date > '2020-03-01 00:00:00';


8. 使用非分区键进行查询

当查询条件中没有引用分区键时,数据库将不得不扫描所有的子分区,才可以获取到正确的结果。

在SQLConsole页签中,输入以下SQL语句,单击执行计划。如下的SQL查询没有引用分区表的分区键,从执行计划中我们可以看到数据库将会扫描其所有的子分区。

SELECT * FROM partition_range where id = 5;

选中上一步的SQL,并单击执行,可以看到其耗时约为354ms。

即使在分区表上对要查询的列建立索引,由于该索引是局部索引,将会建立在每一个子分区表上,数据库依旧需要对每一个子分区上的索引分别进行扫描。

在SQLConsole页签中,输入以下SQL语句,单击执行,创建索引。

CREATE INDEX partition_range_idx_local ON partition_range(id);

在SQLConsole页签中,输入以下SQL语句,单击执行计划。

SELECT * FROM partition_range WHERE id = 5;


9. 创建全局索引并进行非分区键查询

对要扫描的非分区列创建全局索引。全局索引是一个建立在跨越所有子分区之上的索引,能够有效提升非分区键的查询性能。

在SQLConsole页签中,输入以下SQL语句,单击执行,创建全局索引。

CREATE INDEX partition_range_idx_global ON partition_range(id) GLOBAL;

在SQLConsole页签中,输入以下SQL语句,单击执行计划,可以看到使用了全局索引进行扫描。

SELECT * FROM partition_range WHERE id = 5;

选中上一步的SQL,并单击执行,可以看到得到结果的时间缩短为48ms。

10. 释放资源

说明:在实验完成之后,如果您不需要相关的实验资源,请您及时释放,否则可能会产生一定费用。

如果您不再使用PolarDB PostgreSQL版集群,前往PolarDB控制台,找到目标集群,在右侧操作列选择更多>释放,按照界面提升手动释放集群。

实验链接:https://developer.aliyun.com/adc/scenario/b456be5c36664cf9a820d5da3cd4f61d

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
29天前
|
关系型数据库 Serverless 分布式数据库
【公测】PolarDB PostgreSQL版Serverless功能免费使用​!
【公测】PolarDB PostgreSQL版Serverless功能免费使用​,公测于2024年3月28日开始,持续三个月,公测期间可以免费使用!
|
2月前
|
关系型数据库 分布式数据库 数据库
PolarDB常见问题之加了索引但是查询没有使用如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
2月前
|
关系型数据库 分布式数据库 数据库
PolarDB PostgreSQL版:Oracle兼容的高性能数据库
PolarDB PostgreSQL版是一款高性能的数据库,具有与Oracle兼容的特性。它采用了分布式架构,可以轻松处理大量的数据,同时还支持多种数据类型和函数,具有高可用性和可扩展性。它还提供了丰富的管理工具和性能优化功能,为企业提供了可靠的数据存储和处理解决方案。PolarDB PostgreSQL版在数据库领域具有很高的竞争力,可以满足各种企业的需求。
|
2月前
|
关系型数据库 Serverless 分布式数据库
PolarDB PostgreSQL版Serverless功能上线公测啦,公测期间免费使用!
Serverless数据库能够使得数据库集群资源随客户业务负载动态弹性扩缩,将客户从复杂的业务资源评估和运维工作中解放出来。PolarDB PostgreSQL版 Serverless提供了CPU、内存、存储、网络资源的实时弹性能力,构建计算与存储分离架构下的 PolarDB PostgreSQL版产品新形态。
|
15天前
|
SQL 关系型数据库 分布式数据库
|
3月前
|
SQL 关系型数据库 分布式数据库
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能,而不是使用IF函数
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能,而不是使用IF函数
43 7
|
3月前
|
SQL 算法 关系型数据库
PolarDB-X的XPlan索引选择
对于数据库来说,正确的选择索引是基本的要求,选错索引轻则导致查询缓慢,重则导致数据库整体不可用。PolarDB-X存在多种不同的索引,局部索引、全局索引、列存索引、归档表索引。本文主要介绍一种CN上的局部索引算法:XPlan索引选择。
125761 13
PolarDB-X的XPlan索引选择
|
3月前
|
关系型数据库 分布式数据库 数据库
云原生数据库PolarDB快速入门实验
【2月更文挑战第2天】很基础的PolarDB入门操作实验考试,假期闲着无聊考着玩玩。云原生数据库 PolarDB MySQL 版是阿里云自研产品,100%兼容 MySQL。PolarDB产品具有多主多写、多活容灾、HTAP 等特性,交易性能最高可达开源数据库的6倍,分析性能最高可达开源数据库的400倍,TCO 低于自建数据库50%。
|
3月前
|
SQL 关系型数据库 分布式数据库
PolarDB for PostgreSQL逻辑复制问题之逻辑复制冲突如何解决
PolarDB for PostgreSQL是基于PostgreSQL开发的一款云原生关系型数据库服务,它提供了高性能、高可用性和弹性扩展的特性;本合集将围绕PolarDB(pg)的部署、管理和优化提供指导,以及常见问题的排查和解决办法。
|
2月前
|
关系型数据库 分布式数据库 数据库
成都晨云信息技术完成阿里云PolarDB数据库产品生态集成认证
近日,成都晨云信息技术有限责任公司(以下简称晨云信息)与阿里云PolarDB PostgreSQL版数据库产品展开产品集成认证。测试结果表明,晨云信息旗下晨云-站群管理系统(V1.0)与阿里云以下产品:开源云原生数据库PolarDB PostgreSQL版(V11),完全满足产品兼容认证要求,兼容性良好,系统运行稳定。

相关产品

  • 云原生数据库 PolarDB