分区、物化视图与生产运维
141 声明式表分区适合什么场景?
难度: 基础
- A. 数据量大且按分区键过滤为主,便于裁剪与按分区维护
- B. 任何小表都建议分区
- C. 分区必须覆盖所有查询
- D. 分区后无法删除历史数据
查看答案与解析
正确答案A
正确原因: 分区提升大表管理与查询效率,分区裁剪减少扫描范围。
关键边界: 小表分区收益有限,分区键必须匹配高频过滤条件。
错误选项辨析: 小表不需要分区,未按分区键过滤时无法裁剪,DROP 分区即可清理历史。
142 选择分区键的原则是?
难度: 进阶
- A. 选择高频查询过滤且分布均匀的列,如时间或租户 ID
- B. 任意列都可以
- C. 选择从不被过滤的列
- D. 必须使用主键本身
查看答案与解析
正确答案A
正确原因: 查询不带分区键会扫描所有分区,键分布不均会造成分区倾斜。
关键边界: 分区键通常要包含在唯一约束中。
错误选项辨析: 分区键选择直接影响裁剪效果,不限于主键。
143 分区裁剪(Partition Pruning)的作用是?
难度: 进阶
- A. 把分区数据复制到内存
- B. 根据过滤条件跳过无关分区,减少扫描数据量
- C. 删除空分区
- D. 合并相邻分区
查看答案与解析
正确答案B
正确原因: 优化器在规划时确定命中分区,只扫描相关分区。
关键边界: 动态裁剪在部分场景需要执行期才能确定。
错误选项辨析: 裁剪是跳过分区而非复制、删除或合并。
144 应用层分表与数据库声明式分区的区别是?
难度: 进阶
- A. 两者完全等价
- B. 声明式分区由数据库管理路由与约束,应用层分表把逻辑散落在代码里
- C. 应用层分表支持跨表事务更简单
- D. 声明式分区必须手动路由
查看答案与解析
正确答案B
正确原因: 声明式分区内建路由、裁剪与约束,应用无感;应用分表需要代码维护分片逻辑。
关键边界: 应用分表通常没有数据库层统一管理,复杂度更高。
错误选项辨析: 二者不等价,声明式分区自动路由,应用分表跨表查询更麻烦。
145 物化视图与普通视图的区别是?
难度: 基础
- A. 两者完全相同
- B. 普通视图会缓存结果
- C. 物化视图存储查询结果,普通视图每次实时执行查询
- D. 物化视图不占存储
查看答案与解析
正确答案C
正确原因: 物化视图把结果落盘,读取快但数据可能过期;普通视图实时计算。
关键边界: 物化视图需要 REFRESH 更新。
错误选项辨析: 普通视图不缓存,物化视图占用存储。
146 PostgreSQL 物化视图的刷新方式是?
难度: 进阶
- A. 自动实时增量刷新
- B. 每次查询自动刷新
- C. REFRESH MATERIALIZED VIEW,默认全量重建,可 CONCURRENTLY 减少锁
- D. 只能删除重建
查看答案与解析
正确答案C
正确原因: PG 原生是全量刷新,CONCURRENTLY 选项可避免长时间锁表。
关键边界: 增量刷新需借助扩展或应用实现。
错误选项辨析: 不自动刷新,不实时,也不止删除重建一种方式。
147 pg_dump 属于哪种备份?
难度: 基础
- A. 物理文件备份
- B. 块级快照
- C. WAL 归档
- D. 逻辑备份,导出 SQL 或自定义格式,可跨版本恢复
查看答案与解析
正确答案D
正确原因: pg_dump 读取数据生成逻辑导出,恢复灵活但速度相对慢。
关键边界: 大数据量环境常用物理备份与归档。
错误选项辨析: 它不复制数据文件,不是快照,也不涉及 WAL。
148 基于时间点恢复(PITR)依赖?
难度: 进阶
- A. 只要一份 pg_dump 即可
- B. 只需内存快照
- C. 不需要任何日志
- D. 基础备份加连续的 WAL 归档
查看答案与解析
正确答案D
正确原因: PITR 由基础备份回放 WAL 到目标时间点。
关键边界: 需要开启归档并妥善保存 WAL 文件。
错误选项辨析: 单份逻辑备份无法时间点恢复,内存快照不可持久,日志是必需。
149 流复制(Streaming Replication)中从库的作用是?
难度: 基础
- A. 持续应用主库 WAL,保持只读副本并承担读流量
- B. 接受客户端写入
- C. 替代主库生成 WAL
- D. 缓存查询结果
查看答案与解析
正确答案A
正确原因: 从库通过流复制应用 WAL,处于热备状态并提供只读查询。
关键边界: 从库默认只读,写需要特殊配置且不推荐。
错误选项辨析: 从库不接收写,不生成 WAL,也不缓存结果。
150 同步复制与异步复制的区别是?
难度: 进阶
- A. 同步复制等待从库确认后才提交,异步复制不等待
- B. 同步复制更快
- C. 异步复制更安全
- D. 两者完全一样
查看答案与解析
正确答案A
正确原因: 同步牺牲写延迟换取更低丢失风险,异步吞吐高但可能丢数据。
关键边界: 同步复制在主库故障时也可能因等待而从库提升后丢未确认事务。
错误选项辨析: 同步更慢但更安全,两者机制不同。
151 复制槽(Replication Slot)的作用是?
难度: 进阶
- A. 缓存查询结果
- B. 记录从库消费进度,防止主库清理尚未消费的 WAL
- C. 限制连接数量
- D. 加速索引构建
查看答案与解析
正确答案B
正确原因: 复制槽保留所需 WAL,避免从库断线后因日志被清理而无法续传。
关键边界: 失控的槽会让 WAL 无限累积,需监控清理。
错误选项辨析: 槽与缓存、连接数、索引无关。
152 逻辑复制与物理复制的区别是?
难度: 进阶
- A. 两者完全相同
- B. 逻辑复制传输行级变更,物理复制传输 WAL 字节
- C. 逻辑复制传输整个数据文件
- D. 物理复制只能跨版本
查看答案与解析
正确答案B
正确原因: 逻辑复制基于逻辑解码,可跨版本、跨表过滤;物理复制字节级一致。
关键边界: 逻辑复制需要发布订阅配置。
错误选项辨析: 物理复制不传文件,逻辑复制更灵活,跨版本是逻辑复制的优势。
153 主库故障后提升从库为新的主库,使用的命令是?
难度: 基础
- A. 重启主库
- B. 删除从库数据
- C. pg_ctl promote 或触发 promote 文件(故障转移)
- D. 切换端口
查看答案与解析
正确答案C
正确原因: promote 让从库结束恢复模式,开始接受写入。
关键边界: 需评估未同步 WAL 的丢失风险,配合高可用工具。
错误选项辨析: 重启主库不改变角色,删除数据与换端口都不是提升手段。
154 读写分离架构下,强一致读应该?
难度: 实战
- A. 必须读从库
- B. 任意路由都安全
- C. 路由到主库,避免读到复制延迟的旧数据
- D. 关闭从库查询
查看答案与解析
正确答案C
正确原因: 从库数据存在延迟,实时性要求高的读需走主库。
关键边界: 弱一致读可走从库分担压力。
错误选项辨析: 读从库不安全,任意路由不正确,也不必关闭从库。
155 按最小权限原则授予数据库访问,应?
难度: 基础
- A. 直接给超级用户权限
- B. 授权后永不回收
- C. 所有用户共享同一账号
- D. 只授予角色完成任务所需的 SELECT、INSERT 等权限
查看答案与解析
正确答案D
正确原因: 最小权限降低误操作与泄露面,配合角色管理。
关键边界: 权限变更要评审,定期审计。
错误选项辨析: 超级用户、不回收、共享账号都违背最小权限。
156 行级安全策略(RLS)的作用是?
难度: 进阶
- A. 限制列的宽度
- B. 加密整张表
- C. 加速查询
- D. 按用户或角色限制能看到的行,强制行级访问控制
查看答案与解析
正确答案D
正确原因: RLS 在查询层强制行过滤,适合多租户数据隔离。
关键边界: 需开启行级安全并为角色定义策略。
错误选项辨析: RLS 按行过滤,不涉及列宽、加密或加速。
157 需要加密敏感字段(如身份证号)时,PostgreSQL 的常见做法是?
难度: 进阶
- A. 应用层或 pgcrypto 加密存储,配合权限与审计
- B. 依赖数据库内置透明加密
- C. 把密码明文入库
- D. 只加密索引
查看答案与解析
正确答案A
正确原因: PG 无内置表级 TDE,常用 pgcrypto 字段加密或外部加密盘。
关键边界: 加密影响查询与索引,需设计可检索方案。
错误选项辨析: 默认无透明加密,明文与只加密索引都不安全。
158 大批量导入数据,比逐条 INSERT 更高效的方式是?
难度: 实战
- A. 逐条 INSERT 最慢但只能这样
- B. COPY 批量加载,减少往返与解析开销
- C. 先建视图再插入
- D. 用 SELECT 代替 INSERT
查看答案与解析
正确答案B
正确原因: COPY 以批量协议加载,明显快于逐条 INSERT。
关键边界: 导入大表前可先删索引再重建,提升写入速度。
错误选项辨析: 有更快方式,视图不能承载导入,SELECT 不写入。
159 生产库连接数被打满时,缓解措施之一是?
难度: 实战
- A. 把 max_connections 设成无上限
- B. 关闭数据库的 TCP 端口
- C. 启用或扩容连接池,限制单应用连接并排查泄漏
- D. 删除慢查询日志
查看答案与解析
正确答案C
正确原因: 池化与限额控制实际并发,同时排查泄漏会话。
关键边界: 连接数受内存限制,需整体规划。
错误选项辨析: 无上限会耗尽内存,关端口不可服务,删日志无帮助。
160 大版本升级(如 PG 16 到 PG 18)推荐的方式是?
难度: 实战
- A. 直接替换数据目录
- B. 删除旧库重新导入生产数据
- C. 升级不需要停机窗口
- D. pg_upgrade 原地升级或逻辑导出导入,先备份并演练
查看答案与解析
正确答案D
正确原因: pg_upgrade 支持原地升级,但必须备份并先演练。
关键边界: 涉及扩展与配置差异,需按官方清单核对。
错误选项辨析: 直接替换目录危险,删库重导影响大,升级通常需要维护窗口。