![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Postgresql
文章平均质量分 65
MyySophia
工作只是你的权利,而只有你的行为才能为你赢得尊重
展开
-
postgres explain可视化分析神器
该工具提供了一个简单易用的界面,用户可以通过它将他们的 SQL 查询提交给 Explain.dalibo.com,该工具会自动解析和优化该查询,并生成一个可视化的执行计划。在执行计划中,用户可以看到查询的性能评估结果,包括扫描行数、运行时间等信息。Explain.dalibo.com 还提供了一个查询库,其中包含大量 SQL 查询示例,用户可以从中学习如何编写高效的查询语句。Explain.dalibo.com 是一个在线 PostgreSQL 查询分析工具,由法国的 Dalibo 公司开发。原创 2023-03-29 10:29:43 · 1259 阅读 · 0 评论 -
推荐一个pg 参数设定调优的网站
点我原创 2021-10-26 13:24:04 · 301 阅读 · 0 评论 -
干货 | PostgreSQL数据表文件底层结构布局分析
1. 表文件PostgreSQL提供了可靠、稳定、有序的数据存储、检索管理。即使在不知道其背后运行原理的情况下,也没有多大关系,因为我们只需要按部就班地执行建库、建表然后插入数据结构这几个流程,就可以如愿以偿地实现将我们的数据持久化于PostgreSQL数据库中。于是我们不得不好奇,这些数据最终落盘于磁盘上的哪个位置?又是以什么样的形式存储?存储的格式又是什么?在这几个疑问的驱动下,本文将通过源码结合数据入库实践操作的方式,来详细地对PostgreSQL底层数据的存储方式进行详细的解读。Postgr转载 2021-10-12 15:11:09 · 2387 阅读 · 0 评论 -
postgresql 之search_path的生效方式
1、对当前会话=# show search_path; search_path---------------- "$user",public(1 row)=# set search_path = temp, "$user",public;SET=# show search_path; search_path----------------------------------------------------------原创 2021-09-02 14:56:05 · 1189 阅读 · 0 评论 -
理解时间:时间时区那些事
时间是个很玄妙的东西,看不见也摸不着。我们都能意识到时间的存在,但要给它下个定义,很多人也说不上来。本文当然不是为了探讨哲学问题,但对时间的正确理解,对正确处理工作生活中的时间问题很有帮助(例如,计算机中的时间表示与时间处理,数据库,编程语言中对于时间的处理)。0x01 秒与计时时间的单位是秒,但秒的定义并不是一成不变的。它有一个天文学定义,也有一个物理学定义。世界时(UT1)在最开始,秒的定义来源于日。秒被定义为平均太阳日的1/86400。而太阳日,则是由天文学现象定义的:两次连续正午时分转载 2021-07-27 13:51:14 · 1497 阅读 · 0 评论 -
PostgreSQL复制原理及高可用集群
文章来自:朱贤文 | 成都文武信息技术有限公司 分析一、PostgreSQL高可用的种类常用的高可用架构及基本原理• 共享存储• 流复制• 逻辑复制1.1 共享存储SAN 共享存储,切换时数据从SAN上恢复.1.2 流复制需要注意流复制只能用于主从复制,而逻辑是可以用于主主之间的复制。主节点可以有多个从节点 从节点上还可以挂载从节点 从节点个数没有明确限制,层级无限制 主从间可以同步复制、可以一步复制, 也可以同步一步混合复制1.3 逻辑复制所有节..原创 2021-01-27 22:25:26 · 965 阅读 · 2 评论 -
认识PostgreSQL中与众不同的索引
文章整理自来自:https://developer.aliyun.com/learning/trainingcamp/postgresql/1?spm=5176.12901015.0.i12901015.7774525cj5Taig#J_2725970650一、索引总体介绍1.1 索引的作用主键、唯一约束 排序 定位Tuple(row)1.2 索引的分类-按算法分1.2索引的分类-其他分类1.3 创建索引的方式1.3.1 非阻塞式创建索引• 使用普通方式创建....原创 2021-01-22 18:54:50 · 333 阅读 · 0 评论 -
docker 启动一个postgresql 服务
目录一、前期准备二、拉去镜像三、创建卷组 & 运行container四、进入postgresql一、前期准备安装docker --可参考二、拉去镜像docker pull postgres:12.1拉去成功后使用 docker image ls 查看三、创建卷组 & 运行container创建 docker volumedocker volume create dv_pgdata启动容器,用-v来指定把postgres的数...原创 2021-01-22 18:19:15 · 1611 阅读 · 1 评论 -
postgresql中的@> 是什么运算符?
如果在一个数组列中想查询包含有某个字符换的时候就不能用like 了吧?这时候可以使用@> 来查找数组列中某个元素是否包含。当然同样也适用于:范围类型 几何类型 JSON类型select version()PostgreSQL 12.4CREATE TABLE sor.contacts(id int primary key, name varchar(40),phone varchar(32)[],address text);insert into sor.contacts原创 2021-01-19 23:01:23 · 3100 阅读 · 0 评论 -
什么是RDS?
一、什么是云数据库?二、关系型数据库和非关系型数据库的区别?三、如何购买阿里云 RDS?3.1 登录阿里云服务网站3.2 按需求购买需要的mysql 版本、存储空间、类型网络以及时间。没错数据库就跟充爱奇艺会员一样。 这就是云服务. 你不需要服务器、不需要安装,不再去翻看网上七嘴八舌的安装教程。3.3 三个版本的区别?这就看需求了,钱多的请忽略这个选项。直接选最贵的。否则你多权衡下实际需求再下单。四、创建和登录数据库4.1 创建账户...原创 2021-01-17 00:17:02 · 9656 阅读 · 0 评论 -
SQL 错误 [42883]: ERROR: function pg_catalog.substring(timestamp without time zone, integer, integer)
目录一、环境二、问题三、后续GP升级之后代码中的substring都要改吗?一、环境dataTransfer]$ psqlpsql (9.4.24)二、问题select substring(evt_timestamp,1,13), count( 1 )from tablenamewhere evt_timestamp >= '2020-05-01 08:00:00' and evt_timestamp <= '2020-05-03 08:00:00'..原创 2020-11-15 12:28:46 · 3851 阅读 · 0 评论 -
Linux write through 和write back
一次在启动虚拟机的时候,发现有如下提示,drive cache: write through. 这究竟是什么意思呢?Write-Through 模式:1. DB向Cell发送一个写请求, cellsrv进行验证确认其请求有效;2. cellsrv将发送指令将其写入到物理磁盘;3. 写完成以后,给DB确认已经写成功;4. cellsrv判断次数据是否适合缓存到cache中,如果满足条件则缓存,否则不缓存。Write-Back 模式:1. DB向Cell发送一个写请求, c...转载 2020-05-13 21:29:56 · 1332 阅读 · 0 评论 -
PostgreSQL 如何查找TOP SQL (例如IO消耗最高的SQL) (包含SQL优化内容)
目录背景一、安装pg_stat_statements二、加载pg_stat_statements模块三、配置pg_stat_statements采样参数四、创建pg_stat_statements extension五、分析TOP SQLpg_stat_statements输出内容介绍最耗IO SQL最耗时 SQL响应时间抖动最严重 SQL最耗共享内存 SQL最耗临时空间 SQL六、重置统计信息慢SQL到底慢在哪里?七、慢SQL、...转载 2020-09-15 16:16:25 · 3202 阅读 · 0 评论 -
PostgreSQL 逻辑结构 和 权限体系 介绍
目录背景逻辑结构权限体系schema使用 , 特别注意用户public如何查看和解读一个对象的当前权限状态附录libpq与jdbc连接配置参考libpqjdbc参考更高基本的安全控制背景本文旨在帮助用户理解PostgreSQL的逻辑结构和权限体系,帮助用户快速的理解和管理数据库的权限。逻辑结构最上层是实例,实例中允许创建多个数据库,每个数据库中可以创建多个schema,每个schema下面可以创建多个对象。对象包括表、物化视图、操.转载 2020-09-08 16:35:43 · 453 阅读 · 0 评论 -
解惑HOT原理
1|0一、问题前段时间;QQ群里有人对“这个表(0,4)这行数据我做了update操作,查看索引的page数据,看到索引一直指向(0,4),用ctid='(0,4)'查询业务表是查不到数据的;然后我做了表的vacuum,reindex甚至drop/createindex,还是这样的”感到疑惑。 在PostgreSQL8.3实现了(heap only tuple)HOT特性。它存在的目的就是消除表非索引列更新对索引影响。但是它如何工作的呢?2|0二、解析 我们来模拟环境...转载 2020-09-07 17:01:50 · 391 阅读 · 0 评论 -
PostgreSQL Freeze 风暴预测续 - 珍藏级SQL
目录背景观测SQL统计SQL明细SQL小结视图1 (v_freeze) :视图2 (v_freeze_stat) :视图3 (v_freeze_stat_detail) :流程附录背景PostgreSQL 目前默认的存储引擎,事务可见性需要依赖行头的事务号,因为事务号是32位的,会循环使用。在一条记录产生后,如果再次经历了20亿个事务,必须对其进行freeze,否则数据库会认为这条记录是未来事务产生的(可见性判断)。因此FREEZE操作是数据库在32.转载 2020-08-17 13:50:16 · 655 阅读 · 0 评论 -
PostgreSQL on Linux 最佳部署手册 - 珍藏级
目录背景OS与硬件认证检查安装常用包配置OS内核参数配置OS资源限制配置OS防火墙selinux关闭不必要的OS服务部署文件系统设置SSD盘的调度为deadline关闭透明大页、numa编译器icc, clang编译PostgreSQL初始化数据库集群配置postgresql.conf配置pg_hba.conf启动数据库背景数据库的安装一直以来都挺复杂的,特别是Oracle,现在身边都还有安装Oracle数据库赚外快的事情.转载 2020-08-12 15:17:08 · 655 阅读 · 0 评论 -
数据库开发规约
目录Redis 开发规范一、键值设计1. key名设计2. value设计3.【推荐】:控制key的生命周期,redis不是垃圾桶。二、命令使用1.【推荐】 O(N)命令关注N的数量2.【推荐】:禁用命令3.【推荐】合理使用select4.【推荐】使用批量操作提高效率5.【建议】Redis事务功能较弱,不建议过多使用6.【建议】Redis集群版本在使用Lua上有特殊要求:7.【建议】必要情况下使用monitor命令时,要注意不要长时间使用。...转载 2020-07-18 14:19:21 · 424 阅读 · 0 评论 -
PostgreSQL 中生成随机汉字
目录背景汉字unicode编码范围例子1例子2输出所有汉字输出随机汉字参考作者digoal背景汉字unicode编码范围php中utf-8编码下用正则表达式匹配汉字的最终正确表达式 —— /[\x{4e00}-\x{9fa5}]/u \u4e00-\u9fa5 (中文) \x3130-\x318F (韩文) \xAC00-\xD7A3 (韩文) \u0800-\u4e00 (日文) 4e00 对应 199689fa5 .转载 2020-07-15 17:19:04 · 1474 阅读 · 0 评论 -
update panelNo SQL
--495update cell2_chip_t set item30= trim(to_char( trunc((chip_no+1)/2) * 4-1 - chip_no,'00')) ,item29= trim(cf_glass_id) || trim(to_char( trunc((chip_no+1)/2) * 4-1 - chip_no,'00')) where 1=1 and re...原创 2020-02-19 11:21:44 · 150 阅读 · 0 评论 -
pg为什么...?
原创 2019-11-25 20:45:18 · 329 阅读 · 1 评论 -
PostgreSql table和 磁盘文件的映射关系
在postgresql中 Drop table会不会释放磁盘空间,今日以实操来见证 --2019-01-11 09:49:21 drop table 会不会释放空间 create table tab_todrop(id int,cname varchar(50),remark text); insert into tab_todrop select generate_series(1,...原创 2019-01-11 14:24:44 · 523 阅读 · 0 评论 -
PostgreSql对空闲数据块的管理
PostgreSQL 8.2.15 (Greenplum Database 4.3.27.0 build 1) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Jul 11 2018 19:48:18本节的内容有些时pg 8。4之后的新特性,这个新特性对vacuum的影响很大。未完...原创 2019-01-09 18:33:38 · 454 阅读 · 0 评论 -
GP的Warning 处理方案
系统数据库报错如下database "postgres" must be vacuumed within 1499833364 transactions (seg10 P1QMSSDW03:40002 pid=22452)--HINT: To avoid a database shutdown, execute a full-database VACUUM in "postgres...原创 2017-12-28 18:38:48 · 3154 阅读 · 2 评论 -
查询PostgreSql某个schema下所有的relname
今天需要下sql查出某个schema下所有table的时候,postgresql的系统表pg_tables可以查,只不过查出的table超多,大多数是分区表。我只查询主table,可以使用正则表达式来滤掉大多数分区表以下sql的意思查询tablename不包含数字的所有table。1、 “~” 为postgresql正则表达式需要使用的关键字,以表示该关键字之前的内容需匹配之后的正则...原创 2019-01-21 15:23:16 · 6524 阅读 · 0 评论 -
postgresql numeric初识
numeric类型最多能存储有1000个数字位的数字并且能进行准确的数值计算。它主要用于需要准确地表示数字的场合,如货币金额。不过,对numeric类型进行算术运算比整数类型和浮点类型要慢很多。numeric类型有两个术语,分别是标度和精度。numeric类型的标度(scale)是到小数点右边所有小数位的个数,numeric的精度(precision)是所有数字位的个数,例如,23.5...原创 2018-12-15 10:29:58 · 24194 阅读 · 2 评论 -
PostgreSQL用户应掌握的高级SQL特性
原文作者: 谭峰、张文升,这两位作者的新书 好像是 《PostgreSQL实战》,在读本书之前,我先把这几个高级特性学到手,并在我们的GP集群上逐一操练。感触颇深。1、with的用法WITH t as ( SELECT generate_series(1,3))SELECT * FROM t;WITH查询的一个重要属性是RECURSIVE(递归),使用RECURSIV...转载 2018-09-02 17:25:57 · 1144 阅读 · 0 评论 -
PostpreSQL系统表中的字段
每天学习一点点select oid,relname,relkind from pg_class where relname like 'wpp_adefect_%' and length(relname) < 20--17使用对象标识符定位表名select 6224742::regclass;--18 ctid代表数据行在它所处的表的物理位置,vacuum full之后会变化。-...原创 2018-07-16 21:38:26 · 813 阅读 · 0 评论 -
从PostpreSql MVCC的角度看real_flg
Oracle 和 MySql的Innoodb引擎都实现了多版本的功能,但是与PG的实现方式不一样。前者的旧版本数据并不记录在原先的数据块中,而是记录在回滚段中。如果要读取旧版本的数据,需要根据回滚段的数据重构旧版本数据。 比如:在实际业务中,EDA 对有重复数据有一张table就是在表名后加一个"_OLD"。来区分新旧数据。()...原创 2018-07-16 20:29:45 · 359 阅读 · 0 评论 -
分布式数据库之分布键
Update报错:Cannot parallelize an UPDATE statement that updates the distribution column1个或者数个table column被作为distribution key(DK) 。DK被Hash算法用来决定每行记录对应特定的segment instance。相同的key值记录会Hash到相同的segme...原创 2018-04-01 23:03:16 · 15240 阅读 · 0 评论 -
从PostgreSQL的FSM管理策略来考思考BitMap为什么可以节省空间?
在GP中有一个BitMap索引,当所扫描到的index比较大时,就可能走bitmap索引。那位为什么要选择图索引?为什么bitmap可以节省空间?bitmap就是用一个bit位来标记某个元素对应的value,而key即是该元素,由于 BitMap使用了bit位来存储数据,因此可以大大节省存储空间。基本原理:比如0-7内有5个元素(7,2,3,5,1)。假如需要对其...原创 2019-11-16 10:44:03 · 298 阅读 · 0 评论