Help us learn about your current experience with the documentation. Take the survey.
数据库开发指南
数据库审查
-
在您正在开发的功能的设计阶段,请注意是否添加了任何与数据库相关的更改。如果您正在添加或修改查询,请尽早查看
explain计划,以避免在审查阶段后期出现意外情况。 -
如果您在任何时候需要帮助优化查询或理解
explain计划,请在#database频道寻求帮助。 -
如果您正在创建一个数据库 MR 以供审查,请查阅我们的 数据库审查指南。
其中介绍了与数据库相关的更改、迁移和复杂的 SQL 查询。
-
如果您是一名数据库审查者,或者想成为一名审查者,请查阅我们的 数据库变更审查介绍。
升级
工具
- 理解 EXPLAIN 计划
- explain.depesz.com 或 explain.dalibo.com 用于可视化
EXPLAIN的输出 - pgFormatter 一个 PostgreSQL SQL 语法美化工具
- db:check-migrations 任务
- 数据库迁移流水线
迁移
- 添加必要的停止点
- 迁移中避免停机
- 批量后台迁移指南
- 创建常规迁移,包括创建新模型
- 删除迁移
- 不同类型的迁移
- 多数据库迁移
- 创建安全 SQL 迁移的迁移风格指南
- 分区表
- 部署后迁移指南 和 如何创建部署后迁移
- 运行数据库迁移
- SQL 查询工作指南
- 交换表
- 测试 Rails 迁移指南
- 何时以及如何编写 Rails 迁移测试
- 去重数据库记录
分区表
调试
- 访问数据库
- 重置数据库
- 数据库故障排除和调试
- 追踪 SQL 查询的来源:
- 在 Rails 控制台中,使用 详细查询日志
- 使用 Marginalia 进行查询注释
最佳实践
- 添加数据库索引
- 在不停止服务的情况下添加外键约束
- 与 Cells 的兼容性
- 升级前检查后台迁移
- 客户端连接池
- 约束命名约定
- 创建枚举
- 数据布局和访问模式
- “IN” 操作符的高效查询
- 外键与关联
- 哈希索引
- 批量插入表数据
- 批量处理指南
- 批量迭代表数据
- 负载均衡
NOT NULL约束- 排序表列
- 分页指南
- 多态关联
- 查询计数限制
- 查询性能指南
- 数据序列化
- 单表继承
- 以二进制形式存储 SHA1 哈希
- 字符串与文本数据类型
- 更新多个值
- 验证数据库功能
案例研究
GitLab 管理员的 PostgreSQL 信息
- 使用外部 PostgreSQL 服务配置 GitLab
- 为扩展配置 PostgreSQL
- 数据库负载均衡
- 将 GitLab 数据库移动到不同的 PostgreSQL 实例
- 使用 Omnibus GitLab 进行复制和故障转移
- 使用 Omnibus GitLab 运行独立的 PostgreSQL
- PostgreSQL 故障排除
- 使用捆绑的 PgBouncer 服务
扩展的用户信息
对于 GitLab 管理员,有关 为扩展配置 PostgreSQL 的信息是可用的,包括主要方法:
ClickHouse
- 介绍
- GitLab 中的 ClickHouse
- 优化查询执行
- 使用 ClickHouse 重建 GitLab 功能 1:活动数据
- 使用 ClickHouse 重建 GitLab 功能 2:合并请求分析
- ClickHouse 中的分层存储