M7-09 P2 | ChatSession 数据库索引优化 #77

Closed
opened 2026-06-06 16:21:28 +08:00 by wangdl · 1 comment
Owner

目标

为新查询模式增加数据库索引。

索引

CREATE INDEX idx_chat_session_scope ON ChatSession(userId, scopeType, scopeId, lastMessageAt);
CREATE INDEX idx_chat_session_kb ON ChatSession(parentKnowledgeBaseId, lastMessageAt);
CREATE INDEX idx_chat_session_list ON ChatSession(userId, isDeleted, isArchived, lastMessageAt);
## 目标 为新查询模式增加数据库索引。 ## 索引 ```sql CREATE INDEX idx_chat_session_scope ON ChatSession(userId, scopeType, scopeId, lastMessageAt); CREATE INDEX idx_chat_session_kb ON ChatSession(parentKnowledgeBaseId, lastMessageAt); CREATE INDEX idx_chat_session_list ON ChatSession(userId, isDeleted, isArchived, lastMessageAt); ```
wangdl added this to the M7:ChatScope 会话系统 — 学习对象绑定的上下文会话 milestone 2026-06-06 16:21:28 +08:00
Author
Owner

关闭原因

本 issue 是合并 issue,已拆分为三个更细粒度的子 issue:

子 Issue 内容 状态
#94 M7-09a scope 核心查询索引 [userId, scopeType, scopeId] 已完成
#95 M7-09b 知识库会话列表索引 [userId, parentKnowledgeBaseId] 已完成
#96 M7-09c 删除过滤索引 [userId, isDeleted] 已完成

交付情况

子 issue 已全部完成,实际创建的索引:

@@index([userId])
@@index([knowledgeBaseId])
@@index([userId, scopeType, scopeId])        // open-or-create 核心查询
@@index([userId, parentKnowledgeBaseId])     // 知识库内会话列表
@@index([userId, isDeleted])                // 排除已删除会话
@@index([lastMessageAt])                    // 时间排序

覆盖的查询场景

查询 使用索引
按 scope 查现有会话 (open-or-create) [userId, scopeType, scopeId]
知识库下所有会话列表 [userId, parentKnowledgeBaseId]
全局列表排除已删除 [userId, isDeleted]
按用户排序 [userId] + [lastMessageAt]
## 关闭原因 本 issue 是合并 issue,已拆分为三个更细粒度的子 issue: | 子 Issue | 内容 | 状态 | |----------|------|------| | #94 M7-09a | scope 核心查询索引 [userId, scopeType, scopeId] | ✅ 已完成 | | #95 M7-09b | 知识库会话列表索引 [userId, parentKnowledgeBaseId] | ✅ 已完成 | | #96 M7-09c | 删除过滤索引 [userId, isDeleted] | ✅ 已完成 | ## 交付情况 子 issue 已全部完成,实际创建的索引: ```prisma @@index([userId]) @@index([knowledgeBaseId]) @@index([userId, scopeType, scopeId]) // open-or-create 核心查询 @@index([userId, parentKnowledgeBaseId]) // 知识库内会话列表 @@index([userId, isDeleted]) // 排除已删除会话 @@index([lastMessageAt]) // 时间排序 ``` ### 覆盖的查询场景 | 查询 | 使用索引 | |------|---------| | 按 scope 查现有会话 (open-or-create) | [userId, scopeType, scopeId] | | 知识库下所有会话列表 | [userId, parentKnowledgeBaseId] | | 全局列表排除已删除 | [userId, isDeleted] | | 按用户排序 | [userId] + [lastMessageAt] |
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#77
No description provided.