优化 / 高 / 后端服务
electron/services/database.service.ts
messages 表仅有 session_id 单字段索引。 SessionService.getMessages 执行:
session_id
SELECT * FROM messages WHERE session_id = ? ORDER BY timestamp ASC;
需要 filesort(虽然 SQLite 不叫 filesort 但概念类似)排序。 长会话(1000+ 消息)加载时:
CREATE INDEX IF NOT EXISTS idx_messages_session_timestamp ON messages(session_id, timestamp ASC);
覆盖索引,避免回表与排序。
添加迁移:
{ version: '0.x.x', sql: 'CREATE INDEX IF NOT EXISTS idx_messages_session_timestamp ON messages(session_id, timestamp ASC);', }
No dependencies set.
The note is not visible to the blocked user.
问题类型
优化 / 高 / 后端服务
文件位置
electron/services/database.service.ts问题描述
messages 表仅有
session_id单字段索引。SessionService.getMessages 执行:
需要 filesort(虽然 SQLite 不叫 filesort 但概念类似)排序。
长会话(1000+ 消息)加载时:
影响
建议修复
覆盖索引,避免回表与排序。
添加迁移: