数据库分区;pgAdmin操作pgsql分区;修改pgsql数据库名字

news2024/11/25 2:52:49

目录

分区

什么是分区

分区的优势

pgAdmin操作pgsql分区

创建父表

 创建分区

 数据入库分区

扩展(按天创建分区脚本)

修改数据库名字

 链接


分区

什么是分区

指将一个大的表或索引分成多个小的、独立的部分,每个部分称为一个分区,以便更好地管理和处理数据。分区是逻辑上的,不同的分区可以物理上存储在不同的磁盘上,也可以存储在同一个磁盘的不同位置。数据库分区可以通过数据库管理系统自动完成,无需手动分割数据表或索引。

举个例子:我一个大数据量的表,每天几千万的数据,为了方便管理、统计和查询,我可以按天建立分区并且把数据落入对应时间的分区,下边创建分区案例中会有具体实现。

总的来说是根据分区策略,将数据数据分散到不同的子表中,并通过父表建立关联关系,从而实现数据物理上的分区。

分区的优势

数据库分区是一种高效管理海量数据的技术手段,它可以提升数据库的性能、可用性和可维护性,极大地方便了数据库的开发和维护工作。

分区表之后可以将不同的表放置在不同的物理空间上,从而达到冷数据放在廉价的物理机器上,热点数据放置在性能强劲的机器上。

性能上通过分区表的父表查数据相对于普通的数据全量表查询效率要低。直接分区表中查询数据比在全量表中查询数据效率要高。

相比于单个创建表而不分区,我觉得分区聚合统计会比较方便一点。

pgAdmin操作pgsql分区

创建父表

找到create table

 输入名字、开启分区(会提示你指定分区表key,先不管)

 写表属性,必须包含一个分区逻辑字段,我这里以时间分区(date),(注意不能出现主键索引,否者会报错)

 找到partitions,可以看到有三种partition type这里我是用list

  • 范围(Range )分区: 表被划分为由键列或列集定义的“范围”,分配给不同分区的值的范围之间没有重叠。 例如:可以按日期范围或特定业务对象的标识符范围,来进行分区。
  • 列表(List)分区: 通过显式列出哪些键值出现在每个分区中来对表进行分区。
  • 哈希(Hash)分区: (自PG11才提供HASH策略)通过为每个分区指定模数和余数来对表进行分区。 每个分区将保存行,分区键的哈希值除以指定的模数将产生指定的余数。

keyType类型有两种:列和表达式,我选择列

collation排序规则(用于指定表格列中的字符串数据排序方式)我没选

operator class操作符类我没选

下边的partitions框就是创建具体分区的,我们先不创建,先创建父表

 可以预览一下sql,毕竟不能只会用pgadmin可视化操作,保存结束

 创建分区

找到刚才创建的父表,打开属性,找到分区(partitions),因为我们使用的list的类型,所以指定in字段即可

 保存后就可以看到已经出现了分区

 数据入库分区

很简单的案例

插入的时候一定要指定你的分区列,比如我上边创建分区是in=230512,那么我想插入或查询这个分区的时候一定要携带分区列=230512的条件,剩下的交给数据库给你逻辑插入或者查询。

扩展(按天创建分区脚本)

其实在我们创建分区的时候点击最右边的sql栏位,就已经给出我们sql了

然后再结合pgagent写定时任务,方法如下

declare 
    currentDate varchar;
  
BEGIN
  SELECT INTO currentDate to_char(current_date+interval '1 d', 'yymmdd');
  execute 'CREATE TABLE public.message'||currentDate||' PARTITION OF public.message FOR VALUES IN ('||currentDate||')';
  return currentDate;
END;

不会pgagent的可以在我文章中搜索查看

修改数据库名字

在都完成之后,leader突然说我数据库名字起的不是很好,我直接右击修改数据库名字然后得到一个报错

 这是为什么,明明给出了修改的选项,却不让修改,这不是欺负老实人吗。

其实想想很简单,如果这个数据库被别人用着,有连接存在,你改了别人怎么办。

所以我们直接用命令行进入pgsql,找到数据库中的活动连接的pid

SELECT
  pid,
  usename,
  application_name
FROM
  pg_stat_activity
WHERE
  datname = 'name';

紧接着,我们直接把他们的连接T掉(正式环境可不敢这么玩,谨慎使用),把pid全部踢掉

 SELECT pg_terminate_backend(pid);

 最后执行修改数据库名的语句

ALTER DATABASE test_db RENAME TO test_new_db;

 链接

PostgreSQL 教程 (sjkjc.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/519934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

带你了解家居智能的心脏:物联网关

本文将介绍家庭物联网关的相关内容,将明白物联网关在家庭这个场景当中的应用。现在市面上各种各样的智能家居的家电或者其他设备非常多,那么这就需要一个智能的设备去对所有的家电进行管控。这样一个设备就是家庭智能网关,家庭物联网关是家居…

Py之onnx:onnx/onnxruntime库的简介、安装、使用方法之详细攻略

Py之onnx:onnx/onnxruntime库的简介、安装、使用方法之详细攻略 目录 onnx/onnxruntime库的简介 onnx/onnxruntime库的安装 onnx/onnxruntime库的使用方法 1、基础用法 onnx/onnxruntime库的简介 Open Neural Network Exchange(ONNX)是一…

Python每日一练(20230513) 粉刷房子 I\II\III Paint House

目录 1. 粉刷房子 Paint House 2. 粉刷房子 II Paint House-ii 3. 粉刷房子 III Paint House-iii 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 leetcode题号分别为: 256、2…

32 位 ARM® Cortex®-M0+ 单片机,PY32F002B 系列微控制器

PY32F002B 系列微控制器采用高性能的 32 位 ARM Cortex-M0内核,宽电压工作范围的 MCU。嵌入24Kbytes Flash 和 3Kbytes SRAM 存储器,最高工作频率 24MHz。包含多种不同封装类型多款产品。 芯片集成I2C、SPI、USART 等通讯外设,1 路 12bit ADC…

UNIAPP实战项目笔记70 购物车删除商品的前后端交互

UNIAPP实战项目笔记70 购物车删除商品的前后端交互 思路 需要用到vuex 传id值到后端,删除指定id购物车数据 案例截图 购物车商品编辑页面 代码 后端代码 index.js var express require(express); var router express.Router(); var connection require(../db/sql.js); va…

6.Go语言学习笔记-结合chatGPT辅助学习Go语言底层原理

1、Go版本 go1.14.15 2、汇编基础 推荐阅读:GO汇编语言简介 推荐阅读:A Quick Guide to Gos Assembler - The Go Programming Language 精简指令集 数据传输: MOV/LEA 跳转指令: CMP/TEST/JMP/JCC 栈指令: PUSH/POP 函数调用指令: CALL/RET 算术指令: ADD/SUB/MUL/DIV …

PFCdocumentation_FISH Rules and Usage

目录 FISH Scripting FISH Rules and Usage Lines Data Types Reserved Names for Functions and Variables Scope of Variables Functions: Structure, Evaluation, and Calling Scheme Arithmetic: Expressions and Type Conversions Redefining FISH Functions Ex…

hadoop03

MapReduce是Hadoop系统核心组件之一,它是一种可用于大数据并行处理的计算模型、框架和平台,主要解决海量数据的计算,是目前分布式计算模型中应用较为广泛的一种。 练习:计算a.txt文件中每个单词出现的次数 hello world hello ha…

Android View 事件分发机制,看这一篇就够了

在 Android 开发当中,View 的事件分发机制是一块很重要的知识。不仅在开发当中经常需要用到,面试的时候也经常被问到。 如果你在面试的时候,能把这块讲清楚,对于校招生或者实习生来说,算是一块不错的加分项。对于工作…

三种方式在HTML使用阿里字体图标--iconfont阿里巴巴矢量图标库

好久没用到阿里巴巴的图标,突然要用到就发现不会用了,只会导出png格式的图标png了 目录 1、字体图标 方法一、本地使用通过类名使用阿里矢量图标 1、把图标添加入库 2、把图标添加到项目 3、下载字体图标 4、使用文件 5、在对应的HTML页面上引入…

瑞吉外卖项目笔记01——环境搭建、后台登录功能

1.1 数据库 数据库&#xff1a; 创建一个空白数据库reggie&#xff0c;然后导入执行SQL文件创建的表如下&#xff1a; 1.2 项目依赖 项目依赖&#xff1a; pom.xml文件内的依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"…

国外APP项目的上线流程

现在很多创业者希望自己的项目能走出国内&#xff0c;向全球各地发展&#xff0c;尤其对于一些通用APP来说&#xff0c;国外可以增加一个新的收入渠道。比如常见的出海APP有小型游戏、手机清理、杀毒软件等等&#xff0c;这些类型的APP在全球的使用基本都是一样的&#xff0c;因…

Lucene(1):Lucene介绍

Lucene官网&#xff1a; http://lucene.apache.org/ 1 搜索技术理论基础 1.1 lucene优势 原来的方式实现搜索功能&#xff0c;我们的搜索流程如下图&#xff1a; 上图就是原始搜索引擎技术&#xff0c;如果用户比较少而且数据库的数据量比较小&#xff0c;那么这种方式实现搜…

Lucene(2):Lucene全文检索的流程

1 索引和搜索流程图 &#xff08;1&#xff09;绿色表示索引过程&#xff0c;对要搜索的原始内容进行索引构建一个索引库&#xff0c;索引过程包括&#xff1a; 确定原始内容即要搜索的内容 获得文档创建文档分析文档索引文档 &#xff08;2&#xff09;红色表示搜索过程&…

win10安装conda

conda是一个开源的软件包管理系统和环境管理系统&#xff0c;用于安装、管理和升级各种软件和应用程序。它可以在多个操作系统上运行&#xff0c;支持数百种语言和各种计算机程序。conda提供了安装软件包、创建和管理虚拟环境、配置依赖关系等功能&#xff0c;并且可以轻松地在…

Mac+Vscode+PyQt

纵览 1、需要安装Python&#xff0c;而我安装了Anaconda&#xff0c;并建立了一个虚拟环境env_qt2、在Vscode的终端中利用命令&#xff1a;3、在Vscode的扩展中安装「PYQT Integration」插件&#xff0c;4、可以在bin文件夹下创建一个无后缀的文件des&#xff0c;输入&#xff…

Hacking The Box----Awkward

信息收集 nmap扫描&#xff0c;发现22号端口和80号端口打开&#xff0c;80号端口上运行着http服务器。访问ip后URL变为hat-valley.htb 修改/etc/hosts文件&#xff0c;添加10.10.11.185 hat-valley.htb&#xff0c;然后就能正常访问网站。可以看到是一家卖帽子的公司的网站&a…

Windows如何安装使用curl命令

一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;让我们一起学习Windows如何安装使用curl命令。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连) 二、Curl是什么 curl命令网络应用curl命令是一个利用URL规则在命令行下工作的文件传输工具。 CURL支持的通信协议…

【从零开始学Skynet】高级篇(一):Protobuf数据传输

1、什么是Protobuf Protobuf是谷歌发布的一套协议格式&#xff0c;它规定了一系列的编码和解 码方法&#xff0c;比如对于数字&#xff0c;它要求根据数字的大小选择存储空间&#xff0c;小于等于15的数字只用1个字节来表示&#xff0c;大于15的数用2个字节表示&#xff0c;以此…

PBR核心理论与渲染原理

基于物理的渲染&#xff08;Physically Based Rendering&#xff0c;PBR&#xff09;是指使用基于物理原理和微平面理论建模的着色/光照模型&#xff0c;以及使用从现实中测量的表面参数来准确表示真实世界材质的渲染理念。 以下是对PBR基础理念的概括&#xff1a; 微平面理论…