暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

2022年 PostgreSQL 面试题和答案(26道)

原创 小小亮 2022-10-26
8322

PostgreSQL 面试问题


1) 什么是 PostgreSQL?
2) 列出 Postgresql 的一些特性?
3) 列出 Postgresql 的不同数据类型?
4) 列出 Postgresql 的不同优点?
5) PostgreSQL 中的字符串常量是什么?
6) 什么是 PostgreSQL 中的多版本控制?
7) PostgreSQL 的索引是什么?
8) PostgreSQL 中的令牌是什么?
9) 什么是 PostgreSQL 中的表分区?
10) 如何在 PostgreSQL 中启动数据库服务器?
11) PostgreSQL 中的 pgadmin 有什么用?
12) PostgreSQL 中的立方根运算符 (||/) 是什么?
13) 我们如何更改 PostgreSQL 中的列数据类型?
14) Postgresql 中的统计信息如何更新?
15) 比较“PostgreSQL”和“NoSQL”
16) Postgre 9.1 的新特性是什么?
17) 解释 PostgreSQL 的历史。
18) PostgreSQL 中的命令 enable-debug 是什么?
19) 可以在 PostgreSQL 中使用什么选项来使事务看到在事务的先前部分中受影响的行?
20) 了解多版本并发控制?
21) 简要说明 Postgresql 中的功能。
22) Postgresql 中使用了哪些不同类型的数据库管理工具?
23) 是否为 pgadmin 提供解释?(100% 的 Postgresql 面试问题)
24) 什么是 Ctid?
25) 提供关于预写日志的解释?

26) 聚集索引和非聚集索引有什么区别?


以下是最佳 Postgresql 面试问题和答案

1) 什么是 PostgreSQL?

Postgres或在 SQL 世界中简称为Postgresql是广泛和流行的对象关系数据库管理系统之一,主要用于大型 Web 应用程序。它是功能强大的开源对象关系数据库系统之一。它通过结合四个基本概念来提供额外的强大功能,以便用户可以毫无问题地扩展系统。它扩展并使用结合各种功能的 SQL 语言来安全地扩展和存储复杂的数据工作负载。

2) 列出 Postgresql 的一些特性?

 以下是 Postgresql 的一些主要功能:

  1. 对象关系数据库
  2. 支持主流操作系统
  3. 支持 SQL 和复杂 SQL 查询的可扩展性
  4. 嵌套事务
  5. 灵活的 API 和数据库验证
  6. 多版本并发控制 (MVCC) 和过程语言
  7. WAL 和客户端服务器
  8. 表继承和异步复制

3) 列出 Postgresql 的不同数据类型?

 Postgresql 支持新的、不同的数据类型。以下是这些数据类型:

  • UUID
  • 数值类型
  • 布尔值
  • 字符类型
  • 时间类型
  • 几何图元
  • 任意精度数值
  • XML
  • 数组等

用户还可以创建他们的索引并将它们编入索引。


4) 列出 Postgresql 的不同优点?

以下是 PostgreSQL 的一些优点:

  • 稳定的
  • 可靠的
  • 可扩展
  • 简单易学
  • 开源
  • 专为高容量环境而设计
  • 跨平台
  • 更好的支持
  • 灵活的

5) PostgreSQL 中的字符串常量是什么?

PostgreSQL 中的字符串常量是由单引号 (') 限定的某个字符的序列。

例子

'This is a string Constant'

6) 什么是 PostgreSQL 中的多版本控制?

PostgreSQL 中的多版本并发控制或 MVCC 用于避免数据库不必要的锁定。这消除了用户登录其数据库的时间延迟。当其他人访问内容时,会出现此功能或时间延迟。所有的交易都被保存为记录。

7) PostgreSQL 的索引是什么?

PostgreSQL 的索引是内置的函数或方法,例如GIST 索引哈希表B-tree(二叉树),用户可以使用这些函数或方法以向后的方式扫描索引。用户还可以定义他们的 PostgreSQL 索引。

8) PostgreSQL 中的令牌是什么?

PostgreSQL中的令牌是任何源代码的构建块。众所周知,它们包含许多特殊字符符号。这些可以被视为常量、引用标识符、其他标识符和关键字。作为关键字的标记由预定义的 SQL 命令和含义组成。标识符用于表示变量名称,如列、表等。

9) 什么是 PostgreSQL 中的表分区?

PostgreSQL 中的表分区是将大表拆分为小块的过程。分区表是一种逻辑结构,用于将大表划分为称为分区的小块。

10) 如何在 PostgreSQL 中启动数据库服务器?

在您可以访问数据库之前,您必须能够启动数据库服务器。数据库的服务器程序称为 Postgres。Postgres 程序必须知道在哪里可以找到它应该使用的数据。这是通过 -D 选项完成的。因此,启动服务器的最简单方法是:

  1. /usr/local/etc/rc.d/010.pgsql.sh 启动
  2. /usr/local/etc/rc.d/PostgreSQL 启动

11) PostgreSQL 中的 pgadmin 有什么用?

它是一个免费的开源 GUI 工具 PostgreSQL 数据库管理工具,适用于 Windows、Mac OS X 和 Linux 系统。它用于数据库的信息检索、开发、测试和持续维护。

12) PostgreSQL 中的立方根运算符 (||/) 是什么?

PostgreSQL 立方根运算符(||/)用于获取数字的立方根。

例子

SELECT ||/40 AS "Cube Root of 40";

13) 我们如何更改 PostgreSQL 中的列数据类型?

使用更改列类型语句和 ALTER TABLE 命令来更改 PostgreSQL 中的列类型。

例子

ALTER TABLE table_name 
ALTER COLUMN column_name [SET DATA] TYPE new_data_type;

14) Postgresql 中的统计信息如何更新?

这并不像看起来那么难。为了在 PostgreSQL 中更新您的统计信息,需要调用一个称为显式“真空”的特殊函数。要做的方法是创建一个 Vacuum,其中使用 Analyze 选项更新 Postgresql 中的统计信息

VACUUM ANALYZE;

是语法。

15) 比较“PostgreSQL”和“NoSQL”

表达“NoSQL”包含了作为非关系数据库一部分的广泛的实现集合。这包括诸如 TokyoCabinet 之类的微型嵌入式数据库、诸如 Hadoop 之类的大规模数据处理平台以及介于两者之间的一切。简而言之,几乎不可能评论 NoSQL 作为典型类所包含的范围。

在非关系数据库和关系数据库之间进行选择也很普遍,因为两者已经并存了四十多年。事实上,用户应该根据他们当前的应用需求来选择数据库的特性、社区支持和实现。此外,在大型项目中使用多种不同的数据库正变得越来越普遍,而不是趋势。此外,PostgreSQL 的用户也不例外。

16) Postgre 9.1 的新特性是什么?

在更新项目的过程中,人们永远无法确定哪些功能会进入,哪些功能不会成功。该项目具有精确和严格的质量标准,并且某些补丁可能会或可能不会在设定的截止日期之前匹配它们。目前,9.1 版本正在开发一些重要功能,包括 JSON 支持、同步复制、最近邻地理搜索、列级别的排序规则、SQL/MED 外部数据连接、安全标签以及仅索引访问。然而,这个列表很有可能在 Postgre 9.1 发布时完全改变。

17) 解释 PostgreSQL 的历史。

PostgreSQL的起源可以追溯到 1986 年,作为加州大学伯克利分校 POSTGRES 项目的一部分,并在核心平台上进行了 30 多年的积极开发。它可以在所有主要操作系统上运行,并且自 2001 年以来一直符合 ACID。它还具有诸如 PostGIS 数据库扩展器之类的附加组件。在 MAC OS 中,Postgresql 是默认数据库。Michel Stonebraker 是 Postgresql 之父,他发起了支持当代数据库系统的 Post Ingres 项目。PostgreSQL 的开发人员将 PostgreSQL 发音为 Postgres缩写 因为在大多数关系数据库中普遍支持 SQL 标准。PostgreSQL,最初称为 Postgres,是由 UCB 的计算机科学教授 Michael Stonebraker 创建的,他后来成为 Informix Corporation 的 CTO。

Stonebraker于 1986 年创建了 Postgres,作为其前身 Ingres 的后续项目,Ingres 现在归 Computer Associates 所有。因此,Postgres 这个名字从它的前身(如“在 Ingres 之后”)中脱颖而出。从 1977 年到 1985 年开发的 Ingres 一直是根据经典 RDBMS 理论创建数据库系统的练习。Postgres 开发于 1986-1994 年,是一个旨在在数据库概念(例如探索“对象-关系”技术)方面开辟新天地的项目。作为企业级数据库,PostgreSQL 拥有复杂的功能,例如多版本并发控制 (MVCC)、时间点恢复、表空间、异步复制、嵌套事务(保存点)、在线/热备份、复杂的查询计划器/优化器和用于容错的预写日志记录。

18) PostgreSQL 中的命令 enable-debug 是什么?

命令 enable-debug 用于启用所有应用程序和库的编译。此过程的执行通常会阻碍系统,但也会放大二进制文件的大小。存在的调试符号通常有助于开发人员发现可能与他们的脚本相关的错误和其他问题。 

19) 可以在 PostgreSQL 中使用什么选项来使事务看到在事务的先前部分中受影响的行?

 SQL标准主要针对三种现象定义了四个级别的事务隔离。并发事务之间必须防止这三种现象。不希望出现的现象是:

  • 幻读:重新执行查询的事务,返回一组满足搜索条件的行,然后发现已经满足条件的行集由于另一个最近提交的事务而发生了变化。
  • 不可重复读取:一个事务重新读取它之前读取的数据,然后发现该数据已经被另一个事务(自初始读取后提交)修改。
  • 脏读:读取由并发未提交事务写入的数据时的事务是脏读。

 

20) 了解多版本并发控制?

 MVCC 或更广为人知的多版本并发控制用于避免不必要的数据库锁定。消除了用户的时间延迟,以便人们可以轻松地登录到他的数据库。所有的交易都保存完好作为记录。当其他人在内容上时会发生时间延迟。

21) 简要说明 Postgresql 中的功能。

 在任何地方,函数都是重要的部分,因为它们有助于在服务器上执行代码。编程函数的一些语言是 PL/pgSQL,一种 PostgreSQL 的本地语言,以及其他脚本语言,如 Perl、Python、PHP 等。也可以使用名为 PL/R 的统计语言来提高函数的效率。

22) Postgresql 中使用了哪些不同类型的数据库管理工具?

 
有很多数据管理工具,它们是

  • phpgadmin
  • sql
  • 管理员

其中,phppgadmin 是最受欢迎的。这些工具中的大多数是前端管理工具和基于 Web 的界面。

23) 是否为 pgadmin 提供解释?(100% 的 Postgresql 面试问题)

 Pgadmin 是一个众所周知的功能,可以形成图形前端管理工具。此功能在艺术许可下发布的免费软件中可用。Pgadmin iii 是在艺术许可下发布的新数据库管理工具。

24) 什么是 Ctid?

CTIDs 是一个字段,存在于每个 PostgreSQL 表中,已知它可以根据特定表中的块和偏移位置来识别特定的物理行。它们被索引条目用来指向物理行。它对于表中的每条记录都是唯一的,并且很容易表示元组的位置。逻辑行的 CTID 在更新时会发生变化,因此 CTID 不能用作长期行标识符。但是,当预期没有竞争更新时,识别事务中的行有时很有用。

25) 提供关于预写日志的解释?

WAL 或预写日志记录是确保数据完整性的标准方法。将操作和更改写入事务日志是一种协议或正确规则。众所周知,此功能通过在任何更改或更新数据库之前记录更改来提高数据库的可靠性。这在数据库崩溃的情况下提供数据库的日志。这有助于从中断的点开始工作。

26) 聚集索引和非聚集索引有什么区别?

聚集索引和非聚集索引的区别

  • 聚簇索引 是一种索引类型,用于根据键值对表数据行进行排序。在 RDBMS 中,主键允许我们基于该特定列创建聚集索引。
  • 非聚集索引(或常规 b 树索引)是行的顺序与实际数据的物理顺序不匹配的索引相反,它按构成索引的列排序。


原文标题:PostgreSQL Interview Questions and Answer in 2022

原文链接:https://www.onlineinterviewquestions.com/postgresql-interview-questions/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论