Postgres数据库采用MVCC(多版本并发控制)机制来保证数据的完整性,与Mysql和Oracle数据库采用undo/回滚段来保存旧数据不同,pg中没有undo这一概念,pg的多版本并发是通过在表中数据行的多个版本来实现的。也就是说,在删除和更新旧数据的时候,pg并不是直接删除或者修改老数据,而是对老数据加上标识或者在插入一条新数据后再对老数据加上标识。为了保证数据库的完整性,pg官方引入了W
pg_basebackup是从postgresql 9.1版本开始提供的一个方便基础备份的工具。pg_basebackup用于对正在运行的PostgreSQL数据库集群进行基本备份。备份是在不影响数据库的其他客户端的情况下进行的,并且可以用于时间点恢复和作为日志传送或流复制备用服务器的起点 。pg_basebackup不仅可以从主服务器进行基础备份,也可以从备用服务器上进行备份。要从备用服务器上实
EDB BigAnimal 是一种完全托管的数据库即服务,可运行在用户的云帐户或 BigAnimal 的云帐户中,由 Postgres 的构建者之一运营。BigAnimal 可让用户轻松设置、管理和扩展数据库。用户可以使用兼容 Oracle 的 PostgreSQL 或 EDB Postgres Advanced Server,也可以选择分布式高可用性集群类型来使用地理分布的数据库。BigAnim
截止目前,PostgreSQL可以支持btree,hash,gin,gist,spgist,brin共6种不同的索引。PostgreSQL 9.5版本新增了BRIN索引(block range index,块范围索引)访问方法,存储了每个连续的数据块的边界值信息,例如最大值,最小值,是否包含空值。BRIN非常适合流式数据自增列的(例如序列,时间戳)索引,索引可以做到很小,而且定位比较精准,适合类似
Slony-I 是 PostgreSQL 的第三方复制系统,其历史可追溯到 8.0 版之前,是可用的较老的复制选项之一。它采用基于触发器的复制方法。Slony 通过在要复制的每个表(主服务器和从服务器)上安装触发器来运行,每次当表上进行了INSERT、UPDATE 或 DELETE操作时,它都会记录更改了哪些数据,以及更改的内容。外部进程(称为“slon 守护程序”)像任何其他客户端一样连接到数据
表继承是postsql数据库特有的功能,它允许创建一个表并直接从另一个表中继承所有的列和约束。这种技术可以极大地简化数据库的设计和管理,同时还可以提高数据库的性能,并减少重复性的代码。当创建一个继承表时,父表中的检查约束和非空约束会被子表继承,其他约束则不会。另外子表还可以添加一些额外的列、索引和约束,以扩展其功能。在这种情况下,所有继承自父表的行还会自动出现在继承表中,从而使继承表的使用非常简单
针对sql语句运行速度慢:这种情况下,需要检查服务器的CPU性能指标,包括load average(平均负载)、iowait、CPU使用率、磁盘空间等等。通常情况下,我们可以使用top -c命令来动态查询这些参数值。下面我们可以在本机系统运行top -c命令看一下CPU的相关信息(在这里只截取了占据CPU比较多的一些进程):top - 09:58:33 up 87 days, 21:43, 1
MongoDB是业界第一个由开发者设计并服务于开发者的数据库。它是一个可以管理面向文档的信息、存储或检索信息的工具。此外,MongoDB 是一种通用数据库,它可以多种方式用于支持许多不同行业(例如电信、游戏、金融、医疗保健和零售等)的应用程序。现代应用程序的要求包括:个性化、超大规模、始终在线、边缘、响应速度,而 MongoDB 可以很好地满足这些要求。MongoDB 是一个文档型数据库,数据以类
数据库备份是指将数据库中的数据和结构进行备份,以便在发生故障或数据丢失时恢复数据库的操作。备份方式分为逻辑备份和物理备份。逻辑备份是指通过导出数据库中的数据和结构的逻辑表示(例如SQL语句),将其保存到文件中。逻辑备份可以是数据库的逻辑结构、表结构和数据等,优点是备份文件相对较小时,备份和恢复速度较快,可以跨平台进行备份和恢复。缺点是在数据量比较大的情况下,备份和恢复的过程较慢。物理备份是指直接将
Postgres 数据库由一个或多个模式(schema)组成,模式可以看成是一个表的集合,一个模式可以包含视图、索引、数据类型、函数和操作符等。相同的对象名称可以出现在不同的模式中,而且不会出现冲突,例如 schema1 和 myschema 都可以包含名为 mytable 的表。Postgres数据库支持跨模式查询,也就是说连接到schmea1的会话可以查询myschema模式下的表。使用模式可
TimescaleDB是一个在PostgreSQL之上构建的时序数据库,它利用了关系型数据库的成熟性和灵活性,并针对时序数据进行了优化。TimeScaleDB通过使用分区表(hypertable)和连续聚集表(continuous aggregate)来处理时序数据,使得数据的存储和查询更加高效。TimeSacleDB既像传统关系数据库一样易于使用,又有Nosql数据库的扩展性。 Ti
近年来随着移动端应用的普及,应用埋点、用户标签计算等场景开始诞生,为了更好的支撑这类场景,越来越多的大数据系统开始使用半结构化格式来存储此类数据,以便让数据处理变得更加灵活和便捷。常用的半结构化类型为json和jsonb。从PG 9.2版本之后,postgres数据库就开始支持json数据类型。到了9.4版本,postgres提供了更高效的数据类型jsonb。两者的区别主要在于效率。json储存的
在之前的文章中,我们详细介绍了Postgresql的MVCC机制。在存在较多更新和删除操作的Postgres数据库中,系统中旧版本的数据会造成较多冗余,因此需要Vaccum机制来定期清理旧版本的数据,尽量减少对数据库中的查询操作造成的影响。Postgresql数据库提供了autovacuum机制来减少人工Vacuum的操作,具体来说,autovacuum的作用如下:1、清理表中的过期死元组。2、防
Postgres的配置文件是用来对数据库设置基础配置的,默认安装在数据目录下,在PG9.4版本以后,系统提供了postgres.conf和postgresql.auto.conf两个配置文件,主要的配置文件为postgres.conf。一般来说,配置文件中的大部分参数都是用的系统默认值,除非有需要,我们才会手动修改。我们可以通过下面的命令来查询配置文件的位置:postgres=# show con
在之前的文章中(https://blog.51cto.com/u_16765851/10813155),我们提到了Postgres数据库的事务号是由32位无符号数据组成的,顺序产生,依次递增。有一个重要的概念,每个事务只能看见t_xmin比自己XID小且没有被删除的元组。由于事务号的大小是有上限的,所以在无特殊操作的前提下,当PostgreSQL的XID 到达40亿,就会造成溢出。事务ID的比较方
Postgres数据库的MVCC(Multi-Version Concurrency Control,多版本并发控制)与Oracle和Mysql数据库不同,在写入新数据库时,旧数据不删除,直接写入新数据。而Oracle和Mysql数据库在写新数据时,是把旧数据转移到回滚段中,其他人读数据时,从回滚段中把旧数据读出来。PG的这种控制方式有利有弊,优缺点如下:优点无论事务进行了多少操作,回滚多可以立刻
Postgres数据库作为一款完全开源的关系型数据库,号称是最先进的开源数据库。它不仅支持传统的关系型数据查询(SQL),也支持非关系型数据的查询(Json)。它的起源可以追溯到1986年开发的以4.2版本为基础的POSTGRES,参考了同样在伯克利开发的旧 Ingres 数据库。到了1995年,两位华人把Postgres的sql引擎改掉之后,它就开始商业化了。这些年来,Postgres数据库一直
最近几年,作为完全开源的数据库,Postgres由于其强大的性能和可扩展性,包括支持包含json/jsonb在内的多种数据类型,兼容C/C++/Java/Python/Perl等多种开发语言,提供基于时间点恢复的解决方案(PITR),通过使用多版本并发控制(MVCC)从而支持并发操作,允许写操作和读操作同时发生等众多优势,从而受到越来越多企业和个人开发者的青睐。日常使用Postgres数据库的过程
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号