CREATE TABLE `rag_snippet` ( `rag_item_id` bigint NOT NULL COMMENT 'RAG item id (stable hash of table/version/snippet_id)', `workspace_id` bigint NOT NULL COMMENT 'RAG workspace scope', `table_id` bigint NOT NULL COMMENT '来源表ID', `version_ts` bigint NOT NULL COMMENT '表版本号', `action_result_id` bigint NOT NULL COMMENT '来源 action_results 主键ID(snippet_alias 或 snippet 行)', `snippet_id` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '原始 snippet id', `rag_text` text COLLATE utf8mb4_bin NOT NULL COMMENT '用于向量化的拼接文本', `merged_json` json NOT NULL COMMENT '合并后的 snippet 对象', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '写入时间,用于分区', `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`rag_item_id`,`created_at`), KEY `idx_action_result` (`action_result_id`), KEY `idx_workspace` (`workspace_id`), KEY `idx_table_version` (`table_id`,`version_ts`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin PARTITION BY RANGE COLUMNS (`created_at`) ( PARTITION p202401 VALUES LESS THAN ('2024-02-01'), PARTITION p202402 VALUES LESS THAN ('2024-03-01'), PARTITION p202403 VALUES LESS THAN ('2024-04-01'), PARTITION p202404 VALUES LESS THAN ('2024-05-01'), PARTITION p202405 VALUES LESS THAN ('2024-06-01'), PARTITION p_future VALUES LESS THAN (MAXVALUE) ) COMMENT='RAG snippet 索引缓存';