Database Index
数据库索引
数据库索引是额外的数据结构,可以加快特定查询、排序或约束。它会占用存储空间,也会增加写入数据时的工作。
另一个例子
客服系统常按 `tenant_id`、`status` 和 `updated_at DESC` 查询未结工单。执行计划显示,一个复合部分索引能把 p95 从 780ms 降到 24ms。只对 `status` 建索引会找到太多数据,又增加写入成本,没有帮助,所以不采用。
主要部分
- 01索引键
- 02索引结构和条件
- 03规划器访问路径
什么时候用
针对已测量的查询、表连接、排序、唯一规则或外键使用方式建立索引,并用真实数据和执行计划检查。
什么时候不要用
不要每一列都建立索引,也不要忽略额外的写入和内存成本。应查看执行计划,不要直接假设索引被使用。
代码里的名称
CREATE INDEX with column order, method, predicate, and measured query plan 上线前要检查
检查接口约定、任何情况下都不能破坏的规则、授权与输入限制。测试重试、重复执行只生效一次、超时与部分失败。验证数据完整性、兼容性、监控、恢复与回到上一版。
预期结果:为这套系统设计或检查 数据库索引 (Database Index),并让数据保持正确、安全且容易维护。 用户场景:客服系统常按 `tenant_id`、`status` 和 `updated_at DESC` 查询未结工单。执行计划显示,一个复合部分索引能把 p95 从 780ms 降到 24ms。只对 `status` 建索引会找到太多数据,又增加写入成本,没有帮助,所以不采用。 技术概念或控制措施:数据库索引 (Database Index)。 适用理由:针对已测量的查询、表连接、排序、唯一规则或外键使用方式建立索引,并用真实数据和执行计划检查。 不应使用的情况:不要每一列都建立索引,也不要忽略额外的写入和内存成本。应查看执行计划,不要直接假设索引被使用。 工程要求:定义输入、输出、接口约定,以及任何情况下都不能破坏的规则。说明授权与输入检查范围。定义失败、超时、重试和重复执行只生效一次的规则。也要定义数据迁移与兼容限制。 运营要求:加入监控信号与隐藏敏感数据的日志。设置容量上限并写好操作手册。测试恢复与回到上一版的流程。 验收标准:接口约定与失败路径测试通过。重试或部分失败时,数据与授权规则仍正确。性能上限、监控、恢复与回到上一版的方法都已验证。 证据与限制(证据边界):它只代表该来源的官方说法。其他平台或团队可能有不同用法。 待确认:程序运行环境、数据位置、流量形态、数据一致需求和安全边界。也要确认兼容周期、服务目标(SLO)与恢复上一版的限制。
检查这份需求
请 AI 编程助手检查当前如何使用 数据库索引 (Database Index)。 定义:数据库索引是额外的数据结构,可以加快特定查询、排序或约束。它会占用存储空间,也会增加写入数据时的工作。 生产环境检查:检查接口约定、任何情况下都不能破坏的规则、授权与输入限制。测试重试、重复执行只生效一次、超时与部分失败。验证数据完整性、兼容性、监控、恢复与回到上一版。 修改程序前,先列出看到的证据、缺口、严重程度,以及最小且安全的修正。