合 PostgreSQL常见面试题
- Oracle、MySQL、PG之间的区别?
- PG中有关职工表SQL查询的20道题
- 谈谈你对PG体系结构的理解
- 常见高可用方案
- 主备流复制:
- 常见分布式方案:
- 双主方案:
- PG中的事务回卷
- PostgreSQL简介
- PostgreSQL 的特点
- PostgreSQL的核心优势是什么?
- PostgreSQL有什么缺点吗?
- PostgreSQL中表空间的用途是什么?
- 列出PostgreSQL支持的各种数据类型。
- 如何在 PostgreSQL 中存储二进制数据?
- 简要说明 Postgresql 中的功能
- PostgreSQL 中的字符串常量是什么?
- PostgreSQL 的令牌是什么?
- 什么是 PostgreSQL 索引?
- 如何建立 PostgreSQL 数据库?
- 在PostgreSQL中定义删除数据库的过程。
- 如何在 PostgreSQL 中创建表?
- 对比“PostgreSQL”和“MongoDB”
- 什么是PostgreSQL的多版本并发控制?
- pgAdmin 到底是什么?
- Postgresql 中使用了哪些不同类型的数据库管理工具?
- PostgreSQL中的数据库是如何删除的?
- 模式由什么组成?
- SQL 和 PostgreSQL 最显着的区别是什么?
- 详细解释预写日志
- 非聚集索引的定义是什么?
- 聚集索引和非聚集索引有什么区别
- PostgreSQL如何提供安全性?
- 什么是 Ctid字段?CTIDs 字段有什么用?
- 了解多版本并发控制(MVCC)?
- 可以在 PostgreSQL 中使用什么选项来使事务看到在事务的先前部分中受影响的行?
- PostgreSQL 中的命令 enable-debug 是什么?
- 解释 PostgreSQL 的历史
- Postgre 9.1 的新特性是什么?
- 比较“PostgreSQL”和“NoSQL”
- Postgresql 中的统计信息如何更新?
- 我们如何更改 PostgreSQL 中的列数据类型?
- PostgreSQL 中的立方根运算符 (||/) 是什么?
- 如何在 PostgreSQL 中启动数据库服务器?
- 定义Postgre中的安全措施
- 解释PostgreSQL数据库中原子性属性的作用
- 列出在 PostgreSQL 中控制事务的命令
- PostgreSQL 中事务的各种属性及其首字母缩写词。
- 从现有表中删除完整数据的方法。
- 在创建表时在列中指定数据类型的好处。
- SQL 语句中的记号表示什么?
- 什么是 PL/Python?
- PostgreSQL 中的全文搜索是什么意思?
- 什么是表分区?
- 参考
Oracle、MySQL、PG之间的区别?
1、Oracle 12c、MySQL和PG都可以是单实例多数据库模式。
2、PG和Oracle是多进程模式,MySQL是单进程多线程模式。在并发不高时,MySQL处理速度快,但当并发高的时候,对于现在多核的单台机器上,MySQL的总体处理性能不如PostgreSQL,原因是MySQL的线程无法充分利用CPU的能力。
3、PostgreSQL没有回滚段,而Oracle与MySQL innodb都有回滚段。
4、PostgreSQL完全免费,而且是BSD协议,Oracle是商业数据库,不开源,MySQL数据库虽然是开源的,但现在随着SUN被oracle公司收购,现在基本上被oracle公司控制。
5、PostgreSQL在复杂SQL的执行、存储过程、触发器方面比MySQL支持的要好的多,是去O最佳的数据库。
6、Oracle和PG支持物理备库,而MySQL只支持逻辑主从复制。
7、Oracle支持堆表,也支持索引组织表;PostgreSQL只支持堆表,不支持索引组织表;Innodb只支持索引组织表。
8、PG、SQL Server、Oracle的默认的事务隔离级别为Read Committed(提交读),MySQL的默认的事务隔离级别为Repeatable Read(可重复读)。
9、PG、Oracle默认的块大小为8KB,而MySQL默认数据页大小为 16 KB
详情请参考:https://www.dbaup.com/pgoraclehemysqldequbieduibi.html
PG中有关职工表SQL查询的20道题
请参考:https://www.dbaup.com/pgzhongyouguanzhigongbiaosqlchaxunde20daoti.html
谈谈你对PG体系结构的理解
主要从日志文件、参数文件、控制文件、数据文件、redo日志(WAL)、后台进程这几个方面来介绍一下PostgreSQL的架构,请参考:
常见高可用方案
主备流复制:
PG 14 + Pgpool-II + Watchdog 实现高可用(自动故障转移+读写分离+负载均衡)
PostgreSQL使用Pgpool-II实现读写分离+负载均衡
PostgreSQL高可用之repmgr(1主2从+1witness)+Pgpool-II实现主从切换+读写分离+负载均衡
PG高可用集群之Patroni + etcd + HAProxy + keepalived + Prometheus + Grafana监控 部署
PostgreSQL 11版本基于Pacemaker+Corosync+pcs的高可用搭建
常见分布式方案:
PG高可用之Citus分布式集群搭建及使用:https://www.dbaup.com/pggaokeyongzhicitusfenbushijiqundajianjishiyong.html
PG分布式之PGXL安装部署:https://www.dbaup.com/pgfenbushizhipgxlanzhuangbushu.html
PG分布式之Greenplum安装配置:https://www.dbaup.com/greenplumanzhuangpeizhi.html
双主方案:
1、使用使用Bucardo搭建PG的双主:参考:https://www.dbaup.com/shiyongbucardodajianpgdeshuangzhu.html
2、使用OGG for PG微服务快速双向同步RDS数据库(双主):https://www.dbaup.com/shiyongogg-for-pgweifuwukuaisushuangxiangtongburdsshujukushuangzhu.html
3、OGG用于PG数据库之间双主实时同步(RDS for PG亦可)–OGG远程捕获和投递
PG中的事务回卷
请参考:https://www.dbaup.com/pgzhongdemvccduobanbenbingfakongzhi.html#shi_wu_hui_juan
PostgreSQL简介
PostgreSQL是对象关系数据库管理系统最常用的语言之一。它主要用于大型 Web 应用程序。它是一个面向对象的关系型开源数据库系统。它非常强大,允许用户轻松扩展任何系统。它扩展了 SQL 语言并采用多种功能来安全地扩展和存储复杂的数据工作负载。
Postgres或在 SQL 世界中简称为Postgresql是广泛和流行的对象关系数据库管理系统之一,主要用于大型 Web 应用程序。它是功能强大的开源对象关系数据库系统之一。它通过结合四个基本概念来提供额外的强大功能,以便用户可以毫无问题地扩展系统。它扩展并使用结合各种功能的 SQL 语言来安全地扩展和存储复杂的数据工作负载。
PostgreSQL 的特点
- 语言支持:PostgreSQL 支持四种标准的过程语言,包括 PL/pgSQL、PL/Tcl、PL/Perl 和 PL/Python。
- 索引:PostgreSQL 索引支持 B+ 树、哈希、广义搜索树和广义倒排索引。个人还可以设计自己的个性化索引。
- 视图:PostgreSQL 支持生成虚拟表的视图。
- 规则:PostgreSQL 支持规则,允许重写查询的层次结构。
- 继承:在 PostgreSQL 中,可以将表配置为通过继承从“父”表继承属性。
- 用户定义的函数:它有助于构建几乎所有新的数据库对象,包括转换、转换、数据类型、域、函数、聚合函数和索引,包括自定义种类运算符的自定义索引。
以下是 PostgreSQL 的一些优点:
- 稳定的
- 可靠的
- 可扩展
- 简单易学
- 开源
- 专为高容量环境而设计
- 跨平台
- 更好的支持
灵活的
以下是 Postgresql 的一些主要功能:
- 对象关系数据库
- 支持主流操作系统
- 支持 SQL 和复杂 SQL 查询的可扩展性
- 嵌套事务
- 灵活的 API 和数据库验证
- 多版本并发控制 (MVCC) 和过程语言
- WAL 和客户端服务器
- 表继承和异步复制
PostgreSQL的核心优势是什么?
以下是 PostgreSQL 的一些特性:
- 关系对象数据库。
- SQL 支持和可扩展性
- API 和数据库验证的灵活性。
- MVCC 和过程语言,
- WAL 和客户端-服务器。
PostgreSQL有什么缺点吗?
是的。有一些缺点。其中一些包括以下内容:
- 它在性能方面比 MySQL 慢。
- 与 MySQL 相比,它没有大量开源应用程序的支持。
- 由于它更注重兼容性,因此为提高速度而进行的更改需要更多的工作。
PostgreSQL中表空间的用途是什么?
它是磁盘中的一个位置。在此,PostgreSQL 存储数据文件,其中包含索引和表等。
列出PostgreSQL支持的各种数据类型。
以下是添加到 PostgreSQL 的一些新数据类型:
- UUID
- 数值类型
- 布尔值
- 字符类型
- 时间类型
- 几何图元
- 任意精度数值
- XML
- 数组等
如何在 PostgreSQL 中存储二进制数据?
我们可以使用字节或使用大对象功能将二进制数据存储在 PostgreSQL 中。
简要说明 Postgresql 中的功能
在任何地方,函数都是重要的部分,因为它们有助于在服务器上执行代码。编程函数的一些语言是 PL/pgSQL,一种 PostgreSQL 的本地语言,以及其他脚本语言,如 Perl、Python、PHP 等。也可以使用名为 PL/R 的统计语言来提高函数的效率。
PostgreSQL 中的字符串常量是什么?
PostgreSQL 中的字符串常量是由单引号 (') 限定的某个字符的序列。它在插入字符或将字符传递给数据库对象时使用。PostgreSQL 允许使用单引号,但由 C 样式的反斜杠集成。它用于数据解析。
1 | 'This is a string Constant' |
PostgreSQL 的令牌是什么?
在 PostgreSQL 中,令牌充当源代码的构建元素。它们由各种特殊字符符号组成。标记是主要由预定义的 SQL 命令和含义组成的关键字。命令包含由分号 (';') 分隔的标记序列。这些可能包括常量、带引号的标识符、附加标识符、关键字或常量。通常,空格分隔标记。
PostgreSQL中的令牌是任何源代码的构建块。众所周知,它们包含许多特殊字符符号。这些可以被视为常量、引用标识符、其他标识符和关键字。作为关键字的标记由预定义的 SQL 命令和含义组成。标识符用于表示变量名称,如列、表等。
什么是 PostgreSQL 索引?
索引是一种特殊的 PostgreSQL 工具,用于改进从数据库中检索数据。数据库索引类似于书籍索引。索引提供对索引列中所有值的访问。PostgreSQL 索引允许数据库服务器定位和检索特定框架中包含的特定行。B-tree、hash、GiST、SP-GiST、GIN 和 BRIN 是其他示例。在 PostgreSQL 中,用户确实可以自由地创建自己的索引。然而,索引增加了数据处理操作的复杂性并且很少被使用。
PostgreSQL 的索引是内置的函数或方法,例如GIST 索引、哈希表和B-tree(二叉树),用户可以使用这些函数或方法以向后的方式扫描索引。用户还可以定义他们的 PostgreSQL 索引。
如何建立 PostgreSQL 数据库?
有两种方法可以生成数据库。CREATE DATABASE SQL 命令首先出现。
使用以下语法,我们可以构建数据库:
CREATE DATABASE ;
第二种方法使用 createdb 命令。
我们可以使用以下语法建立数据库:createdb [option…] [description]
。
根据使用场景,createDB 命令可能需要很多参数。
在PostgreSQL中定义删除数据库的过程。
我们可以使用以下命令删除数据库:
- 我们可以使用 SQL 命令 - DROP DATABASE
- 另外,我们可以使用“dropdb”,这是一个可行的命令行
如何在 PostgreSQL 中创建表?
您可以通过定义表的名称以及每列的名称和类型来创建新表:
1 2 3 4 5 6 7 8 9 | CREATE TABLE [IF NOT EXISTS] table_name ( column1 datatype(length) column_contraint, column2 datatype(length) column_contraint, . . . columnn datatype(length) column_contraint, table_constraints ); |
对比“PostgreSQL”和“MongoDB”
PostgreSQL 是一个 SQL 数据库,其中数据存储在表的行和列中。它支持实体关系完整性和 JOINS 等概念。PostgreSQL 查询语言是 SQL。PostgreSQL 支持垂直缩放。这就需要使用大型服务器来存储数据。这导致需要停机时间来更新。如果您的应用程序需要关系数据库,或者您需要执行超出 SQL 功能的复杂查询,它的性能会更好。相比之下,MongoDB 是一个 NoSQL 数据库。不需要模式,因此可以存储非结构化数据。数据保存在 BSON 文档中,用户可以修改其结构。MongoDB 查询是用 JavaScript 编写的。由于其对水平扩展的适应性,可以根据需要添加额外的服务器,而停机时间很少甚至没有。