PolarDB for PostgreSQL 14:全局索引

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
3月前
|
监控 关系型数据库 数据库
PostgreSQL的索引优化策略?
【8月更文挑战第26天】PostgreSQL的索引优化策略?
94 1
|
15天前
|
数据库
|
2月前
|
存储 关系型数据库 分布式数据库
揭秘PolarDB:中国云原生数据库的超级英雄,如何颠覆传统数据存储?
在数字化时代,数据成为企业的核心资产,而云原生数据库则是推动企业转型的关键。PolarDB凭借其先进的存储计算分离架构,在性能、可靠性和易用性方面脱颖而出,成为国内领先的选择。它支持多种数据库引擎,提供多副本存储机制,并采用按量付费模式,有效降低管理和成本压力,助力企业实现高效、可靠的数字化转型。
67 1
|
2月前
|
关系型数据库 分布式数据库 数据库
开源云原生数据库PolarDB PostgreSQL 15兼容版本正式发布
PolarDB进行了深度的内核优化,从而实现以更低的成本提供商业数据库的性能。
|
3月前
|
存储 缓存 负载均衡
【PolarDB-X 技术揭秘】Lizard B+tree:揭秘分布式数据库索引优化的终极奥秘!
【8月更文挑战第25天】PolarDB-X是阿里云的一款分布式数据库产品,其核心组件Lizard B+tree针对分布式环境优化,解决了传统B+tree面临的数据分片与跨节点查询等问题。Lizard B+tree通过一致性哈希实现数据分片,确保分布式一致性;智能分区实现了负载均衡;高效的搜索算法与缓存机制降低了查询延迟;副本机制确保了系统的高可用性。此外,PolarDB-X通过自适应分支因子、缓存优化、异步写入、数据压缩和智能分片等策略进一步提升了Lizard B+tree的性能,使其能够在分布式环境下提供高性能的索引服务。这些优化不仅提高了查询速度,还确保了系统的稳定性和可靠性。
90 5
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
39 1
|
3月前
|
存储 关系型数据库 MySQL
再探PolarDB —— PolarDB MySQL 四大场景下的全方位评测
本文全面评测了阿里云PolarDB MySQL在四大关键场景下的表现:Serverless极致弹性、列存索引(IMCI)、弹性并行查询(ePQ)以及无感秒切高可用。通过官方提供的免费体验资源,我们深入了解了PolarDB MySQL的核心能力和性能。Serverless极致弹性列存索引(IMCI弹性并行查询(ePQ)无感秒切高可用此外,文章还介绍了PolarDB MySQL在数据备份和HTAP(混合事务/分析处理)场景下的优势,包括灵活的备份策略、高效的全量和库表恢复方式,以及通过IMCI支持的HTAP能力。这些特性共同构成了PolarDB MySQL作为一款先进的云数据库服务的强大竞争力。
|
3月前
|
存储 关系型数据库 分布式数据库
揭秘PolarDB:中国云原生数据库的超级英雄,如何颠覆传统数据存储?
【8月更文挑战第8天】在数字化时代,数据成为企业的核心资产。随着云技术的发展,企业纷纷向云端迁移,选择合适的云原生数据库至关重要。PolarDB凭借卓越性能、高可靠性和易用性在中国市场领先。它采用存储计算分离架构,支持独立扩展,提高处理大规模数据的效率和灵活性。多副本机制确保数据高可用性和持久性,优于单副本存储方案。兼容多种数据库引擎,提供丰富管理工具,降低迁移和维护成本。按量付费模式帮助企业有效控制成本。因此,PolarDB为企业数字化转型提供了强有力的支持。
97 1
|
3月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
64 0

相关产品

  • 云原生数据库 PolarDB