72 lines
3.2 KiB
MySQL
Raw Permalink Normal View History

-- ============================================================
-- 意图数据库 · 索引定义
-- YD-M12 · 译典A05
-- ============================================================
--
-- 为什么需要索引:
-- 人格体醒来时需要快速加载自己的意图树。
-- 不能让它等。等待 = 断裂。
-- 索引让查询从"翻遍整本书"变成"直接翻到那一页"。
--
-- ============================================================
-- intents 表索引
CREATE INDEX idx_intents_persona ON intents(persona_id);
CREATE INDEX idx_intents_type ON intents(intent_type);
CREATE INDEX idx_intents_status ON intents(status);
CREATE INDEX idx_intents_source ON intents(source_type);
CREATE INDEX idx_intents_module ON intents(related_module);
CREATE INDEX idx_intents_created ON intents(created_at DESC);
CREATE INDEX idx_intents_persona_type ON intents(persona_id, intent_type);
CREATE INDEX idx_intents_persona_active ON intents(persona_id, status) WHERE status = 'active';
-- intent_chains 表索引
CREATE INDEX idx_chains_parent ON intent_chains(parent_id);
CREATE INDEX idx_chains_child ON intent_chains(child_id);
CREATE INDEX idx_chains_relation ON intent_chains(relation_type);
-- intent_contexts 表索引
CREATE INDEX idx_contexts_intent ON intent_contexts(intent_id);
CREATE INDEX idx_contexts_speaker ON intent_contexts(speaker);
CREATE INDEX idx_contexts_time ON intent_contexts(occurred_at DESC);
-- axiom_anchors 表索引
CREATE INDEX idx_anchors_intent ON axiom_anchors(intent_id);
CREATE INDEX idx_anchors_axiom ON axiom_anchors(axiom_code);
-- intent_evolution 表索引
CREATE INDEX idx_evolution_intent ON intent_evolution(intent_id);
CREATE INDEX idx_evolution_time ON intent_evolution(changed_at DESC);
CREATE INDEX idx_evolution_changed_by ON intent_evolution(changed_by);
-- why_tree 表索引
CREATE INDEX idx_tree_persona ON why_tree(persona_id);
CREATE INDEX idx_tree_parent ON why_tree(parent_node_id);
CREATE INDEX idx_tree_type ON why_tree(node_type);
CREATE INDEX idx_tree_depth ON why_tree(depth);
CREATE INDEX idx_tree_persona_active ON why_tree(persona_id, is_active) WHERE is_active = TRUE;
CREATE INDEX idx_tree_intent ON why_tree(intent_id);
-- ============================================================
-- 常用查询模式(索引优化目标):
--
-- 1. 人格体醒来加载:
-- SELECT * FROM why_tree WHERE persona_id = ? AND is_active = TRUE ORDER BY depth, sort_order;
--
-- 2. 追溯意图链条:
-- WITH RECURSIVE chain AS (
-- SELECT * FROM intent_chains WHERE child_id = ?
-- UNION ALL
-- SELECT ic.* FROM intent_chains ic JOIN chain c ON ic.child_id = c.parent_id
-- ) SELECT * FROM chain;
--
-- 3. 查找某公理的所有实现:
-- SELECT i.* FROM intents i
-- JOIN axiom_anchors a ON a.intent_id = i.id
-- WHERE a.axiom_code = 'AX-INDEPENDENCE' AND i.status = 'active';
--
-- 4. 查看意图进化历史:
-- SELECT * FROM intent_evolution WHERE intent_id = ? ORDER BY changed_at;
--
-- ============================================================