
PostgreSQL
文章平均质量分 88
PostgreSQL是一个功能强大的开源的关系型数据库,底层基于C实现。开源协议和Linux内核版本的开源协议是一样的,国内很多国产数据库都是基于PGSQL做的二次封装:比如华为GaussDB还有腾讯的Tbase等等。真实很多公司原来玩的Oracle,直接平转到PGSQL。同时国内的很多云产品都支持
Lansonli
CSDN大数据领域博客专家,InfoQ写作社区2022年度影响力作者、华为云社区2022年度十佳博主、华为云享专家、阿里云专家博主、腾讯云开发者社区2022年度最佳作者、腾云先锋(TDP)核心成员、51CTO专家博主,全网二十万多粉丝,知名互联网公司大数据高级开发工程师
展开
-
PostgreSQL基础(十五):PostgreSQL的主从操作
PostgreSQL自身只支持简单的主从,没有主从自动切换,仿照类似Nginx的效果一样,采用keepalived的形式,在主节点宕机后,通过脚本的执行完成主从切换。操作方式类似与之前的备份和恢复。原创 2024-06-25 16:30:51 · 2480 阅读 · 1 评论 -
PostgreSQL基础(十四):PostgreSQL的数据迁移
PostgreSQL做数据迁移的插件非常多,可以从MySQL迁移到PostgreSQL也可以基于其他数据源迁移到PostgreSQL。pgloader可以安装在任何位置,比如安装在MySQL所在服务,或者PostgreSQL所在服务,再或者一个独立的服务都可以。📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨。这种迁移的插件很多,这里只说一个,pgloader(非常方便)📢本文由 Lansonli 原创,首发于 CSDN博客🙉。我就在PostgreSQL所在服务安装。原创 2024-06-14 23:45:37 · 1967 阅读 · 1 评论 -
PostgreSQL基础(十三):PostgreSQL备份和恢复实战操作
场景:每天凌晨02:00,开始做全备(PBK),到了第二天,如果有人14:00分将数据做了误删,希望将数据恢复到14:00分误删之前的状态?需要执行一个函数,取消这种恢复数据后的状态,才允许正常的执行写操作。第三步:在postgresql.auto.conf文件中,指定归档文件的存储位置,以及恢复数据的方式。除此之外,也可以通过图形化界面备份,在库的位置点击备份就成,导出一个文本文件。将之前备份的两个文件准备好,一个base.tar,一个pg_wal.tar。原创 2024-06-12 14:37:07 · 1060 阅读 · 0 评论 -
PostgreSQL基础(十二):PostgreSQL备份和恢复介绍
防止数据丢失的第一道防线就是备份。数据丢失有的是硬件损坏,还有人为的误删之类的,也有BUG的原因导致误删数据。正常备份和恢复,如果公司有DBA,一般咱们不用参与,但是学的Java,啥都得会点。原创 2024-06-11 15:46:42 · 812 阅读 · 0 评论 -
PostgreSQL基础(十一):PostgreSQL的锁介绍
就是基于LOCK开启表锁,指定表的名字name,其次在MODE中指定锁的模式,NOWAIT可以指定是否在没有拿到锁时,一致等待。当111号连接基于事务开启后,锁住当前表之后,如果使用默认的ACCESS EXCLUSIVE,其他连接操作表时,会直接阻塞住。PostgerSQL有个特点,一般情况,在select的查询没有命中索引时,他不一定会锁表,依然会实现行锁。MySQL中有一个概念,for update时,如果select的查询没有命中索引,可能会锁表。其他的连接要锁住当前行,会阻塞住。原创 2024-06-10 07:06:21 · 654 阅读 · 0 评论 -
PostgreSQL基础(十):PostgreSQL的并发问题
比如你要查询一行数据,但是这行数据正在被修改,事务还没提交,如果此时对这行数据加锁,会导致其他的读操作阻塞,需要等待。如果采用PostgreSQL,他的内部会针对这一行数据保存多个版本,如果数据正在被写入,包就保存之前的数据版本。可重复读,可以解决脏读和不可重复读(MySQL默认是这个隔离级别,PGSQL也提供了,但是设置为可重复读,效果还是串行化)同一事务中,多次查询同一数据,因为其他事务对数据进行了增删吗,导致出现了一些问题。同一事务中,多次查询同一数据,结果不一致,因为其他事务修改造成的。原创 2024-06-08 11:17:33 · 1147 阅读 · 0 评论 -
PostgreSQL基础(九):PostgreSQL的事务介绍
比如一个电商项目,下订单,扣库存,创建订单,删除购物车,增加用户积分,通知商家,这个其实就是一个大事务。可以将扣库存和下订单这种核心功能完成后,增加一个保存点,如果说后续操作有失败的,可以从创建订单成功后的阶段,再做重试。如果后面操作失败了,需要回滚,不需要全盘回滚,回滚到之前的保存点,继续重试。:一次事务操作,要么是其他事务操作前的状态,要么是其他事务操作后的状态,不存在中间状态。但是只要操作合理,可以在保存点的举出上,做重试,只要重试不成功,依然可以全盘回滚。有人会发现,破坏了整体事务的原子性。原创 2024-06-07 23:02:56 · 855 阅读 · 0 评论 -
PostgreSQL基础(八):表的基本操作(二)
相比之前的普通视图,物化视图就不需要每次都查询复杂SQL,每次查询的都是真实的物理存储地址中的一份数据(表)。如果要更新物化视图,可以采用触发器的形式,当原表中的数据被写后,可以通过触发器执行同步物化视图的操作。PostgreSQL中,对物化视图的同步,提供了两种方式,一种是全量更新,另一种是增量更新。视图对于用户来说,就是一张真实的表,可以直接基于视图查询一张或者多张表的信息。在有索引的情况下,再基于name做等值查询,看时间,同时看执行计划。在PGSQL中,简单(单表)的视图是允许写操作的。原创 2024-06-03 14:55:14 · 204 阅读 · 0 评论 -
PostgreSQL基础(七):表的基本操作(一)
其实指定表空间的存储位置后,PGSQL会在$PG_DATA目录下存储一份,同时在咱们构建tablespace时,指定的路径下也存储一份。当对标进行insert,update,delete,truncate操作时,会触发表的Trigger(看触发器的创建时指定的事件)在存储数据时,数据肯定要落到磁盘上,基于构建的tablespace,指定数据存放在磁盘上的物理地址。进一步会发现,其实在PGSQL的默认目录下,存储的是一个link,连接文件,类似一个快捷方式。触发器Trigger,是由事件出发的一种存储过程。原创 2024-06-02 13:57:00 · 153 阅读 · 0 评论 -
PostgreSQL基础(六):PostgreSQL基本操作(二)
撇去JSON类型,本质上JSON格式就是一个字符串,比如MySQL5.7不支持JSON的情况的下,使用text也可以,但是字符串类型无法校验JSON的格式,其次单独的字符串没有办法只获取JSON中某个key对应的value。复合类型就好像Java中的一个对象,Java中有一个User,User和表做了一个映射,User中有个人信息对象。JSON在MySQL8.x中也做了支持,但是MySQL支持的不好,因为JSON类型做查询时,基本无法给JSON字段做索引。JSON类型的数据中多余的空格会被存储下来。原创 2024-06-01 18:33:00 · 382 阅读 · 0 评论 -
PostgreSQL基础(五):PostgreSQL基本操作和数据类型介绍
告诉缓存,插入的数据比较多,可以指定告诉缓存,一次性计算出20个后续的值,nextval时,就不可以不去计算,直接去高速缓存拿值,效率会有一内内的提升。双引号用来标识一个关键字,比如表名,字段名。数值操作也提供了一些函数,比如pi(),round(数值,位数),floor(),ceil()PGSQL提供了序列的数据类型,可以在声明表结构时,直接指定序列的类型即可。如果是单独构建序列,再构建表,使用传统方式实现,序列和表就是相对独立的。布尔类型简单的一批,可以存储三个值,true,false,null。原创 2024-05-31 23:09:30 · 237 阅读 · 0 评论 -
PostgreSQL基础(四):图形化界面安装与数据类型介绍
PGSQL支持的类型特别丰富,大多数的类型和MySQL都有对应的关系。也可以直接使用PostgreSQL官方提供的图形化界面。图形化界面可以连接PGSQL的很多,Navicat(收费)。直接save保存,就可以连接到老郑的信息。其实就是傻瓜式安装,非常简单。直接点击就可以下载即可。原创 2024-05-29 11:26:25 · 269 阅读 · 0 评论 -
PostgreSQL基础(三):PostgreSQL的基础操作
只在psql命令行(客户端)下,执行了一次\l,查看了所有的库信息。可以直接基于psql查看一些信息,也可以基于psql进入到命令行后,再做具体操作。可以直接基于psql去玩可以输入psql --help,查看psql的命令可以直接进入到命令行的原因,是psql默认情况下,就是以postgres用户去连接本地的pgsql,所以可以直接进入。下面的图是默认的连接方式后面都基于psql的命令行(客户端)去进行操作命令绝对不要去背,需要使用的时候,直接找帮助文档,在psql命令行中,直接注入。原创 2024-05-26 09:22:33 · 183 阅读 · 0 评论 -
PostgreSQL基础(二):PostgreSQL的安装与配置
postgreSQL的核心文件,都属于postgres用户,操作的时候,尽可能的别用root用户,容易玩出坑,尽可能先切换到postgres用户去玩。要搞两个配置信息,一个关于postgreSQL的远程连接配置以及postgreSQL的日志配置。为了实现远程连接,除了用户级别的这种配置,还要针对服务级别修改一个配置。postgreSQL默认情况下,只保存7天的日志,循环覆盖。原创 2024-05-25 16:07:16 · 367 阅读 · 0 评论 -
PostgreSQL基础(一):PostgreSQL入门介绍
PostgreSQL是一个功能强大的开源的关系型数据库。底层基于C实现。PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议,这个协议基本和MIT开源协议一样,说人话,就是你可以对PostgreSQL进行一些封装,然后商业化是收费。PostgreSQL的名字咋来的。之前叫Ingres,后面为了解决一些ingres中的一些问题,作为后面的ingres,就起名叫postgre。PostgreSQL版本迭代的速度比较快,现在最新的正式的发布版本,已经到了15.RELEASE。原创 2024-05-25 12:15:24 · 183 阅读 · 0 评论