当前位置: 首页 > news >正文

【openGauss】分区表的介绍与使用

一、openGauss分区表介绍

在openGauss中,数据分区是在一个节点内部对数据按照用户指定的策略做进一步的水平分表,将表中的数据按照指定方式划分为多个互不重叠的部分。
对于大多数用户使用场景,分区表和普通表相比具有以下优点:

  • 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索效率。
  • 增强可用性:如果分区表的某个分区出现故障,表在其他分区的数据仍然可用。
  • 方便维护:如果分区表的某个分区出现故障,需要修复数据,只修复该分区即可。
  • 均衡I/O:可以把不同的分区映射到不同的磁盘以平衡I/O,改善整个系统性能。

二、分区表类型介绍

openGauss数据库支持范围分区表、列表分区表、哈希分区表:

  • 范围分区表:将数据基于范围映射到每一个分区,这个范围是由创建分区表时指定的分区键决定的。这种分区方式是最为常用的。
    • 范围分区功能(range),即根据表的一列或者多列,将要插入表的记录分为若干个范围(这些范围在不同的分区里没有重叠),然后为每个范围创建一个分区,用来存储相应的数据。用户在CREATE TABLE时增加PARTITION参数,即表示针对此表应用数据分区功能。
  • 列表分区表:将数据基于各个分区内包含的键值映射到每一个分区,分区包含的键值在创建分区时指定。
    • 列表分区功能(list),即根据表的一列,将要插入表的记录中出现的键值分为若干个列表(这些列表在不同的分区里没有重叠),然后为每个列表创建一个分区,用来存储相应的数据。
  • 哈希分区表:将数据通过哈希映射到每一个分区,每一个分区中存储了具有相同哈希值的记录。
    • 哈希分区功能(hash),即根据表的一列,通过内部哈希算法将要插入表的记录划分到对应的分区中。

三、范围分区表操作

1. 分区表创建
create table t1(id int,name varchar(20),score float) partition by range(score)
(
partition p1 values less than(60),  # 存储 score<60 的记录
partition p2 values less than(80),  # 存储 60<=score<80 的记录
partition p3 values less than(90)  # 存储 80=<score<90 的记录
)

再创建分区时还可以为分区指定表空间

create table t1(id int,name varchar(20),score float) partition by range(score)
(
partition p1 values less than(60), 
partition p2 values less than(80), 
partition p3 values less than(90) tablespace tbs1 # 将 p3数据 存储到tbs1表空间中
)
2. 为分区表添加新分区
alter table t1 add partition p4 values less than(MAXVALUE)  # 存储 90<=score 的记录
3. 查询分区表数据
select * from t1

查询指定分区的数据

select * from t1 partition(p1)
4. 将分区表的p4重命名为p44
alter table t1 rename partition p4 to p44
5. 删除分区表的p44分区
alter table t1 drop partition p44
6. 分区分裂

将分区p1在’40’左右切分成两块

alter table t1 split partition p1 at (40) into (partition p0, partition p01)
7.分区表索引

为分区表创建索引,不指定索引分区名称

CREATE INDEX t1_index1 ON t1 (score) LOCAL;

为分区表创建索引,同时指定索引分区名称,并指定score2_index存储于tbs1表空间中

CREATE INDEX t1_index1 ON t1 (score) LOCAL
( PARTITION score1_index, PARTITION score2_index TABLESPACE tbs1, PARTITION score3_index 
)

四、列表分区表操作

1. 分区表创建
create table t2(id int,name varchar(20),region varchar(50)) partition by list(region)
(
partition p1 values('云南','四川','重庆','贵州'),  # 存储区域为指定的四个值其中任意一个值的记录
partition p2 values('北京','上海','深圳','广州')
)
2. 为分区表添加新分区
alter table t2 add partition p3 values(DEFAULT)  # 存储不符合之前的分区指定的值的记录

五、哈希分区表操作

1. 分区表创建
create table t3(id int,name varchar(20),region varchar(50)) partition by hash(id)
(
partition p1,
partition p2,
partition p3
)
2. 为分区表添加新分区
alter table t3 add partition p4

相关文章:

【openGauss】分区表的介绍与使用

一、openGauss分区表介绍 在openGauss中&#xff0c;数据分区是在一个节点内部对数据按照用户指定的策略做进一步的水平分表&#xff0c;将表中的数据按照指定方式划分为多个互不重叠的部分。 对于大多数用户使用场景&#xff0c;分区表和普通表相比具有以下优点&#xff1a; …...

代码随想录算法训练营day57

文章目录 Day57回文子串题目思路代码 最长回文子序列题目思路代码 Day57 回文子串 647. 回文子串 - 力扣&#xff08;LeetCode&#xff09; 题目 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。…...

【基础类】—前后端通信类系统性学习

一、什么是同源策略及限制 同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。源&#xff1a;协议、域名和端口&#xff0c; 默认端口是80 三者有一个不同&#xff0c;即源不同&#xff0c;就是跨域 ht…...

vite项目中使用@代表根路径

1.配置vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import path from pathexport default defineConfig({plugins: [vue()],resolve: {alias:{: path.resolve(__dirname, src) }} })2.报错path和__dirname 找不到模块“path”或其相…...

冶金化工操作VR虚拟仿真实验软件提高员工们协同作业的配合度

对于高风险行业来说&#xff0c;开展安全教育培训是企业的重点工作&#xff0c;传统培训逐渐跟不上时代变化和工人需求&#xff0c;冶金安全VR模拟仿真培训系统作为一种新型的教育和培训工具&#xff0c;借助VR虚拟现实技术为冶金行业的工人提供一个安全、高效的培训环境。 冶金…...

SQL Server数据库 -- 索引与视图

文章目录 一、索引 聚集索引非聚集索引二、视图三、自定义函数 标量函数表值函数四、游标五、总结 前言 在学习完创建库表、查询等知识点后&#xff0c;为了更加方便优化数据库的存储和内容&#xff0c;我们需要学习一系列的方法例如索引与视图等等&#xff0c;从而使我们更加…...

2023 java web面试秘籍

目录 第一章&#xff1a;Java Web基础知识1.介绍3.Java Web基本概念 4.常见面试问题第二章&#xff1a;Java Web核心概念和技术1.介绍3.Servlet和JSP4.Web安全5.常见面试问题 第三章&#xff1a;Java Web高级概念和技术1.介绍3.Spring框架4.安全性5.常见面试问题 第四章&#x…...

2023-08-05力扣今日二题

链接&#xff1a; 剑指 Offer 18. 删除链表的节点 题意&#xff1a; 如题 解&#xff1a; 基础链表操作 实际代码&#xff1a; #include<iostream> using namespace std; struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {} }; Li…...

stl_list类(使用+实现)(C++)

list 一、list-简单介绍二、list的常用接口1.常见构造2.iterator的使用3.Capacity和Element access4.Modifiers5.list的迭代器失效 三、list实现四、vector 和 list 对比五、迭代器1.迭代器的实现2.迭代器的分类&#xff08;按照功能分类&#xff09;3.反向迭代器(1)、包装逻辑…...

利用hfish反控境外攻击源主机

导师给了7个网络安全课题选题&#xff0c;本想和他聊了下思路&#xff0c;他一挥手让我先做出点东西再来聊就把我打发走了…… 正好前段时间阿里云到校做推广&#xff0c;用优惠卷薅了一台云服务器&#xff0c;装了hfish先看下情况 没想到才装上没两天数据库就爆了&#xff0…...

4、Rocketmq之存储原理

CommitLog ~ MappedFileQueue ~ MappedFile集合...

在线原型设计工具有好用的吗?就是这10个

随着设计工作的不断发展&#xff0c;原型设计在设计工作中越来越重要&#xff0c;而在线原型设计工具在减轻了设计师工作负担的同时也提高了设计师的工作效率&#xff0c;今天本文将为大家推荐10个能在线使用的原型设计工具&#xff0c;一起来看看吧&#xff01; 1、即时设计 …...

Vc - Qt - QPainter translate

QPainter的translate()函数是用来对绘制坐标系统进行平移操作的方法。它可以将绘制的原点&#xff08;坐标轴的起始点&#xff09;在水平和垂直方向上进行平移。以下是一个使用QPainter的translate()方法进行坐标平移的示例代码&#xff1a; QPainter painter(this);// 绘制一个…...

Spark Catalog详解

前言 旁边的实习生说:我想要用spark代码中对hive库中的内部表和外部表进行批量删除(包括数据),咋感觉网上搜了一圈都找不到解决方案啊,spark这么鸡肋吗? 我:你应该静下心来好好把spark基础知识进行全面学习。 实习生:难道spark有这功能,而我没有学习过?咋弄啊? 我:…...

【Spring专题】手写简易Spring容器过程分析

前置知识 《【Spring专题】Spring底层核心原理解析》 思路整理 我们在上一节《【Spring专题】Spring底层核心原理解析》课里面有简单分析过一个Spring容器的一般流程&#xff0c;所以&#xff0c;本节课我们这里尝试写一下简易的Spring容器。 手写源码示例 一、手写前的准…...

fastadmin自定义键值组件Fieldlist

需求场景&#xff1a; 后台设置前端的固定话费充值金额。编辑时要求能够增删改&#xff0c;给到前端的数据&#xff0c;是要根据金额正序排列&#xff0c;用fastadmin的键值组件(Fieldlist)&#xff0c;使用Art-Template模板语法自定义模板。 最终效果如下图所示&#xff1a; …...

yolov2检测网数据集标注_labelme使用_json2txt格式转换

yolov2检测网数据集标注_labelme使用_json2txt格式转换 一、安装Anaconda二、创建labelme虚拟环境三、使用labelme标注健康非健康猫狗数据3.1 打开数据集所在文件夹3.2 进行标注数据集3.3 json2txt3.4 按文件目录和训练测试数据集重分配 四、数据喂给服务器网络参考链接 一、安…...

C/C++面试总结

一、关键字static、const、extern、volatile作用 1、const 1.修饰常量 用const修饰的变量是不可变的&#xff0c;修饰后的变量只能使用&#xff0c;不能修改。 2.修饰指针 如果const位于*的左侧&#xff0c;eg&#xff1a;const int* a&#xff0c;则const就是用来修饰指针…...

Python爬虫的Selenium(学习于b站尚硅谷)

目录 一、Selenium  1.为什么要学习Selenium  &#xff08;1&#xff09;什么是Selenium  &#xff08;2&#xff09;为什么使用selenium?  &#xff08;3&#xff09;代码演示 2. selenium的基本使用  &#xff08;1&#xff09;如何安装selenium  &#xff08;2…...

springboot 对接 minio 分布式文件系统

1. minio介绍 Minio 是一个基于Go语言的对象存储服务。它实现了大部分亚马逊S3云存储服务接口&#xff0c;可以看做是是S3的开源版本&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等&#xff0c;而一个对象…...

puma-dev与Webpack Dev Server集成:解决混合内容错误的终极方案

puma-dev与Webpack Dev Server集成&#xff1a;解决混合内容错误的终极方案 【免费下载链接】puma-dev A tool to manage rack apps in development with puma 项目地址: https://gitcode.com/gh_mirrors/pu/puma-dev 在现代Web开发中&#xff0c;puma-dev作为一款快速、…...

Linux玩转硬件调试:用CH347芯片一站式搞定JTAG、SWD、SPI Flash和EEPROM(含中断检测实战)

Linux玩转硬件调试&#xff1a;用CH347芯片一站式搞定JTAG、SWD、SPI Flash和EEPROM&#xff08;含中断检测实战&#xff09; 在嵌入式开发和硬件逆向工程领域&#xff0c;调试工具的选择往往决定了工作效率的上限。传统方案需要购置价格高昂的专用调试器&#xff0c;而CH347芯…...

保姆级教程:用Unity+OpenCVSharp插件实现摄像头实时轮廓检测与交互(附完整C#代码)

Unity与OpenCVSharp实战&#xff1a;从摄像头捕捉到交互式轮廓检测全流程解析 在游戏开发与计算机视觉的交叉领域&#xff0c;实时图像处理正成为增强玩家沉浸感的新 frontier。想象一下&#xff1a;玩家只需在摄像头前挥动手势&#xff0c;游戏中的角色就能同步做出反应&#…...

快速上手3DGS数字孪生开发:一份必做的技术动作盘点清单

一、行业核心技术科普&#xff1a;3DGS数字孪生开发的关键技术节点从零开始构建一个基于3D高斯泼溅&#xff08;3DGS&#xff09;的数字孪生应用&#xff0c;涉及多个关键技术节点。每个节点的执行质量&#xff0c;都直接影响最终应用的性能与用户体验。其域创新推出的LCC格式&…...

保姆级教程:用QGIS的SRTM-Downloader插件,5分钟搞定中国区域地形图下载与渲染

5分钟极速出图&#xff1a;QGIS地形图制作全流程实战指南 当你在凌晨三点赶制项目报告&#xff0c;或是课程作业截止前两小时突然需要一张专业地形图时&#xff0c;传统GIS软件的复杂操作流程往往让人抓狂。本文将带你用QGIS的SRTM-Downloader插件&#xff0c;像点外卖一样简单…...

避坑指南:STM32驱动LD3320语音模块,SPI通信和中断配置的那些‘坑’我都替你踩过了

STM32与LD3320语音模块深度避坑实战&#xff1a;从SPI配置到中断优化的完整指南 当第一次拿到LD3320语音识别模块时&#xff0c;大多数开发者都会为它的"即插即用"特性感到兴奋——理论上只需要简单的SPI连接和基础配置就能实现语音识别功能。然而在实际项目中&#…...

Adafruit Fritzing元件库安装与使用指南:提升硬件设计效率

1. 项目概述&#xff1a;为什么你需要Adafruit Fritzing元件库&#xff1f;如果你玩过Arduino或者树莓派&#xff0c;肯定对Adafruit这家公司不陌生。他们出品的各种传感器、显示屏和扩展板&#xff0c;几乎成了开源硬件项目的“标准件”。但每次在Fritzing里画电路图&#xff…...

【STM32入门教程】将`printf`重定向到USART串口(以USB转串口为例)

【STM32入门教程】将printf重定向到USART串口&#xff08;以USB转串口为例&#xff09; 在STM32开发中&#xff0c;printf是一个非常方便的调试工具。但默认情况下&#xff0c;printf会输出到标准输出设备&#xff08;如屏幕&#xff09;&#xff0c;而在嵌入式系统中&#xff…...

电脑安装双系统

电脑安装双系统 本次是在Windows 10的环境下安装Ubuntu的系统。 1、可能需要的准备工作 首先打开cmd输入msinfo32的命令查看电脑的BIOS的模式是不是UEFI,如下所示&#xff1a; 本次安装系统基于以上的BIOS模式下。此外如果遇到安装之后不能跳转到ubuntu系统的问题&#xff…...

TensorFlow GPU内存分配失败怎么办?教你一招避坑

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 TensorFlow GPU内存分配失败的终极解决方案&#xff1a;一招避坑指南 目录 TensorFlow GPU内存分配失败的终极解决方案&#xff1…...