CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
PostgreSQL DBA 入门/课时/对象模型与类型
RawBlame
课时目录12 节

PostgreSQL DBA 入门

  1. 01DBA 职责与 PG 架构
  2. 02安装与部署
  3. 03安全与权限
  4. 04SQL 与事务
  5. 05对象模型与类型
  6. 06索引与执行计划
  7. 07性能与监控
  8. 08备份与恢复
  9. 09复制与高可用
  10. 10PL/pgSQL 与触发器
  11. 11自动化运维
  12. 12综合练习

对象模型与类型

Schema、Domain、约束、NULL。

30 分钟

数据类型与存储设计

PG 类型系统比 MySQL 更丰富:JSONB、数组、范围类型、UUID 等。DBA 需参与选型与迁移策略。与 /roadmaps/postgresql-dba 类型节点对齐。

学习目标

  • 区分 text / varchar / char 与数值、时间类型
  • 理解 JSONB 存储与 GIN 索引场景
  • 规划从 MySQL 迁移时的类型映射

核心概念

常用类型对照表

用途PostgreSQL备注
主键bigserial / uuidUUID 需 pgcrypto 或应用生成
布尔booleanMySQL 用 TINYINT(1)
时间timestamptz推荐带时区
半结构化jsonb二进制 JSON,可索引
全文tsvector配合 GIN
CREATE TABLE app.cf_track (
  id          bigserial PRIMARY KEY,
  slug        text NOT NULL UNIQUE,
  title       text NOT NULL,
  metadata    jsonb NOT NULL DEFAULT '{}',
  is_member   boolean NOT NULL DEFAULT false,
  created_at  timestamptz NOT NULL DEFAULT now()
);

JSONB 查询

INSERT INTO app.cf_track (slug, title, metadata)
VALUES ('demo', 'Demo', '{"tags": ["dba", "pg"]}');

SELECT slug FROM app.cf_track
WHERE metadata @> '{"tags": ["dba"]}';

CREATE INDEX idx_track_metadata ON app.cf_track USING gin (metadata);

类型变更注意

ALTER TABLE app.cf_track
  ALTER COLUMN title TYPE varchar(200);  -- 可能锁表

大表改类型用 新列 + 回填 + 切换 降低锁时间;与 MySQL ALGORITHM=INPLACE 思路类似。

与 MySQL/Spring Boot 对照

MySQLPostgreSQLSpring/MyBatis
JSONjsonbString + TypeHandler 或 Map
DATETIMEtimestamp / timestamptzLocalDateTime /
OffsetDateTime
AUTO_INCREMENTserial / IDENTITY@Id 自增策略一致
ENUM原生 ENUM 或 CHECK推荐 Java enum + varchar

本站 schema.sql 为 MySQL 方言;PG 版练习需去掉 ENGINE=InnoDB、改写 JSON→jsonb。

练习

  • 为 cf_track 加 metadata jsonb 与 GIN 索引,验证 @> 走 Index Scan
  • 写 MySQL→PG 类型映射表(至少 8 种常用类型)
  • 测试 timestamptz 在不同时区客户端下的显示

小结

timestamptz + jsonb 是 PG OLTP 常见组合;迁移先定类型映射表。 下一课索引策略与维护。

加载本节练习…
← 上一课SQL 与事务下一课 →索引与执行计划