# 泰豪电源 AI 数智化平台 - 数据库完整指南 > **更新日期**: 2025-12-02 > **数据库**: PostgreSQL 16 > **总表数**: 50张核心业务表 --- ## 📖 目录 1. [系统概述](#1-系统概述) 2. [Schema架构](#2-schema架构) 3. [核心模块设计](#3-核心模块设计) 4. [表结构速查](#4-表结构速查) 5. [优化方案](#5-优化方案) 6. [部署与维护](#6-部署与维护) 7. [常用查询示例](#7-常用查询示例) --- ## 1. 系统概述 ### 1.1 设计理念 基于`功能结构.xml`的系统架构,遵循 **"一个底座、多种智能体"** 核心理念,支持四大业务模块: 1. **资料管理智能化** 2. **招投标自动化** 3. **售后客服智能化** 4. **企业内部知识协同** ### 1.2 技术选型 - **数据库**: PostgreSQL 16 - **连接池**: HikariCP - **ORM**: MyBatis-Plus 3.5 - **迁移工具**: Flyway (可选) ### 1.3 设计原则 - ✅ **模块化**: 按业务模块划分 Schema - ✅ **规范化**: 统一命名规范和字段设计 - ✅ **可扩展**: 预留扩展字段和软删除 - ✅ **高性能**: 合理索引和分区设计 - ✅ **安全性**: 行级安全和审计日志 --- ## 2. Schema架构 ### 2.1 Schema划分 采用多Schema架构,按业务模块逻辑隔离: | Schema | 说明 | 核心表数量 | 用途 | |--------|------|-----------|------| | `sys` | 系统基础模块 | 11 | 用户、角色、权限、部门 | | `file` | 文件管理模块 | 1 | 文件存储与管理 | | `message` | 消息通知模块 | 4 | 站内信、系统通知 | | `log` | 日志审计模块 | 1 | 操作日志、审计 | | `config` | 系统配置模块 | 1 | 系统参数配置 | | `knowledge` | 知识库管理模块 | 4 | 文档、分段、问答对 | | `bidding` | 招投标智能体 | 8 | 招投标业务流程 | | `customer_service` | 智能客服系统 | 9 | 客服、工单、对话 | | `agent` | 智能体管理 | 11 | 智能体、API、监控 | **总计: 50张核心业务表** ### 2.2 命名规范 ```sql -- Schema 命名: 小写字母 CREATE SCHEMA IF NOT EXISTS sys; -- 表命名: tb_{schema}_{表名} CREATE TABLE sys.tb_sys_user (...); CREATE TABLE knowledge.tb_knowledge_document (...); -- 字段命名: 小写字母 + 下划线 user_id, create_time, full_name -- 索引命名: idx_{表名}_{字段名} CREATE INDEX idx_user_email ON sys.tb_sys_user(email); -- 外键命名: fk_{表名}_{关联表名} CONSTRAINT fk_user_dept FOREIGN KEY (dept_id) ... ``` --- ## 3. 核心模块设计 ### 3.1 系统基础模块 (sys) #### 权限体系设计 采用 **RBAC (基于角色的访问控制) + ACL (访问控制列表)** 混合模型 **核心表**: - `tb_sys_user` - 用户表 - `tb_sys_role` - 角色表 - `tb_sys_permission` - 权限表 - `tb_sys_dept` - 部门表 - `tb_sys_acl` - 对象级权限表 - `tb_sys_user_role` - 用户角色关联表 **权限模型**: ``` 用户 (User) ├─ 部门 (Dept) - 数据隔离 ├─ 角色 (Role) │ ├─ 权限 (Permission) - 功能权限 │ └─ 视图 (View) - 菜单权限 └─ ACL - 对象级权限(细粒度) ``` **设计亮点**: 1. 多租户支持: `dept_path` 字段实现部门级数据隔离 2. 角色作用域: `scope` 字段区分全局/部门角色 3. 对象权限: ACL表支持任意对象的细粒度权限 #### 核心表结构 ```sql -- 用户表 CREATE TABLE sys.tb_sys_user ( user_id VARCHAR(50) PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, password_hash VARCHAR(255) NOT NULL, email VARCHAR(100) UNIQUE, phone VARCHAR(20), wechat_id VARCHAR(100), status VARCHAR(20) DEFAULT 'active', create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted BOOLEAN DEFAULT false ); -- 部门表(树形结构) CREATE TABLE sys.tb_sys_dept ( dept_id VARCHAR(50) PRIMARY KEY, dept_name VARCHAR(100) NOT NULL, parent_id VARCHAR(50), dept_path TEXT, -- 路径:/1/2/3/ sort_order INTEGER DEFAULT 0, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted BOOLEAN DEFAULT false, CONSTRAINT fk_dept_parent FOREIGN KEY (parent_id) REFERENCES sys.tb_sys_dept(dept_id) ); -- 角色表 CREATE TABLE sys.tb_sys_role ( role_id VARCHAR(50) PRIMARY KEY, role_name VARCHAR(100) NOT NULL, role_code VARCHAR(50) UNIQUE NOT NULL, scope VARCHAR(20) DEFAULT 'global', -- global/dept owner_dept_id VARCHAR(50), description TEXT, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted BOOLEAN DEFAULT false ); -- ACL权限表 CREATE TABLE sys.tb_sys_acl ( acl_id VARCHAR(50) PRIMARY KEY, object_type VARCHAR(50) NOT NULL, -- user/dept/document等 object_id VARCHAR(50) NOT NULL, principal_type VARCHAR(20) NOT NULL, -- user/role/dept principal_id VARCHAR(50) NOT NULL, permission VARCHAR(50) NOT NULL, -- view/edit/delete/admin create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 索引 CREATE INDEX idx_user_status ON sys.tb_sys_user(status) WHERE deleted = false; CREATE INDEX idx_dept_path ON sys.tb_sys_dept USING GIN(dept_path gin_trgm_ops); CREATE INDEX idx_acl_object ON sys.tb_sys_acl(object_type, object_id); ``` ### 3.2 知识库管理模块 (knowledge) #### 模块概述 支持文档管理、向量检索、RAG问答,版本控制。 **核心表**: - `tb_knowledge_document` - 文档主表 - `tb_knowledge_chunk` - 文档分段表(向量检索) - `tb_knowledge_qa_pair` - 问答对表 - `tb_knowledge_file_relation` - 文档文件关联表 #### 版本管理设计 采用 **简化版本管理** 方案: ```sql -- 文档表(新增版本字段) CREATE TABLE knowledge.tb_knowledge_document ( doc_id VARCHAR(50) PRIMARY KEY, root_doc_id VARCHAR(50), -- ✨ 根文档ID(版本组标识) version INTEGER DEFAULT 1, -- ✨ 版本号 is_current BOOLEAN DEFAULT true, -- ✨ 是否当前版本 title VARCHAR(500) NOT NULL, content TEXT, knowledge_base_id VARCHAR(50), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted BOOLEAN DEFAULT false ); -- 分段表(向量检索) CREATE TABLE knowledge.tb_knowledge_chunk ( chunk_id VARCHAR(50) PRIMARY KEY, doc_id VARCHAR(50) NOT NULL, chunk_index INTEGER NOT NULL, content TEXT NOT NULL, embedding VECTOR(1536), -- ✨ 向量字段(pgvector扩展) version INTEGER DEFAULT 1, -- ✨ 乐观锁版本 tokens INTEGER, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, CONSTRAINT fk_chunk_doc FOREIGN KEY (doc_id) REFERENCES knowledge.tb_knowledge_document(doc_id) ); -- 索引 CREATE INDEX idx_doc_root_current ON knowledge.tb_knowledge_document(root_doc_id, is_current) WHERE deleted = false; CREATE INDEX idx_chunk_embedding ON knowledge.tb_knowledge_chunk USING ivfflat (embedding vector_cosine_ops) -- ✨ 向量索引 WITH (lists = 100); ``` **版本管理示例**: ```sql -- 创建新版本 BEGIN; -- 1. 标记旧版本为非当前 UPDATE knowledge.tb_knowledge_document SET is_current = false WHERE root_doc_id = 'root_xxx'; -- 2. 插入新版本 INSERT INTO knowledge.tb_knowledge_document ( doc_id, root_doc_id, version, is_current, title, content ) VALUES ( 'new_doc_id', 'root_xxx', 2, true, '新版本标题', '内容' ); COMMIT; -- 查询当前版本 SELECT * FROM knowledge.tb_knowledge_document WHERE root_doc_id = 'root_xxx' AND is_current = true; -- 查询所有版本 SELECT version, title, create_time FROM knowledge.tb_knowledge_document WHERE root_doc_id = 'root_xxx' ORDER BY version DESC; ``` ### 3.3 招投标智能体模块 (bidding) #### 核心表 ```sql -- 招标项目表 CREATE TABLE bidding.tb_bidding_project ( project_id VARCHAR(50) PRIMARY KEY, project_name VARCHAR(500) NOT NULL, project_code VARCHAR(100), bidding_org VARCHAR(200), -- 招标单位 project_type VARCHAR(50), -- 项目类型 status VARCHAR(50) DEFAULT 'draft', budget DECIMAL(18,2), bid_deadline TIMESTAMP, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted BOOLEAN DEFAULT false ); -- 招标文件表 CREATE TABLE bidding.tb_bidding_document ( doc_id VARCHAR(50) PRIMARY KEY, project_id VARCHAR(50) NOT NULL, doc_type VARCHAR(50), -- tender/technical/commercial file_id VARCHAR(50), parsed_content JSONB, -- ✨ 智能解析结果 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, CONSTRAINT fk_bdoc_project FOREIGN KEY (project_id) REFERENCES bidding.tb_bidding_project(project_id) ); -- 标书模板表 CREATE TABLE bidding.tb_bidding_template ( template_id VARCHAR(50) PRIMARY KEY, template_name VARCHAR(200) NOT NULL, template_type VARCHAR(50), content JSONB, -- 模板结构化内容 variables JSONB, -- 可替换变量 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` ### 3.4 智能客服系统模块 (customer_service) #### 核心表 ```sql -- 对话会话表 CREATE TABLE customer_service.tb_cs_conversation ( conv_id VARCHAR(50) PRIMARY KEY, customer_user_id VARCHAR(50), customer_name VARCHAR(100), channel VARCHAR(50), -- wechat/web/phone source VARCHAR(50), -- miniprogram/h5/app status VARCHAR(50) DEFAULT 'active', start_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, end_time TIMESTAMP, satisfaction_score INTEGER -- 满意度评分 ); -- 对话消息表 CREATE TABLE customer_service.tb_cs_message ( message_id VARCHAR(50) PRIMARY KEY, conv_id VARCHAR(50) NOT NULL, sender_type VARCHAR(20), -- customer/agent/bot sender_id VARCHAR(50), content TEXT, message_type VARCHAR(50), -- text/image/file ai_response JSONB, -- AI响应详情 create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, CONSTRAINT fk_msg_conv FOREIGN KEY (conv_id) REFERENCES customer_service.tb_cs_conversation(conv_id) ); -- 工单表 CREATE TABLE customer_service.tb_cs_work_order ( order_id VARCHAR(50) PRIMARY KEY, order_code VARCHAR(100) UNIQUE NOT NULL, conv_id VARCHAR(50), customer_user_id VARCHAR(50), title VARCHAR(500) NOT NULL, description TEXT, category VARCHAR(100), priority VARCHAR(20) DEFAULT 'medium', status VARCHAR(50) DEFAULT 'pending', assigned_to VARCHAR(50), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, resolve_time TIMESTAMP ); ``` ### 3.5 智能体管理模块 (agent) #### 核心表 ```sql -- 智能体定义表 CREATE TABLE agent.tb_agent_definition ( agent_id VARCHAR(50) PRIMARY KEY, agent_name VARCHAR(100) NOT NULL, agent_type VARCHAR(50), -- bidding/cs/knowledge等 description TEXT, config JSONB, -- 配置(模型、参数等) status VARCHAR(20) DEFAULT 'active', version VARCHAR(20), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- API调用日志表 CREATE TABLE agent.tb_agent_api_log ( log_id VARCHAR(50) PRIMARY KEY, agent_id VARCHAR(50), api_endpoint VARCHAR(200), request_params JSONB, response_data JSONB, status_code INTEGER, duration_ms INTEGER, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 智能体监控表(按月分区) CREATE TABLE agent.tb_agent_monitor ( monitor_id VARCHAR(50) NOT NULL, agent_id VARCHAR(50) NOT NULL, metric_name VARCHAR(100), metric_value NUMERIC, timestamp TIMESTAMP NOT NULL, PRIMARY KEY (monitor_id, timestamp) ) PARTITION BY RANGE (timestamp); -- 创建分区 CREATE TABLE agent.tb_agent_monitor_2025_12 PARTITION OF agent.tb_agent_monitor FOR VALUES FROM ('2025-12-01') TO ('2026-01-01'); ``` --- ## 4. 表结构速查 ### 4.1 系统基础模块 (sys) | 表名 | 主键 | 核心字段 | 说明 | |------|------|----------|------| | `tb_sys_user` | user_id | username, email, phone | 用户表 | | `tb_sys_user_info` | user_id | avatar, full_name, level | 用户信息表 | | `tb_sys_dept` | dept_id | name, parent_id, dept_path | 部门表 | | `tb_sys_role` | role_id | name, scope, owner_dept_id | 角色表 | | `tb_sys_permission` | permission_id | name, code, module_id | 权限表 | | `tb_sys_acl` | acl_id | object_type, principal_type | 对象权限表 | ### 4.2 知识库管理 (knowledge) | 表名 | 主键 | 核心字段 | 说明 | |------|------|----------|------| | `tb_knowledge_document` | doc_id | title, root_doc_id, version | 文档表 | | `tb_knowledge_chunk` | chunk_id | doc_id, content, embedding | 分段表 | | `tb_knowledge_qa_pair` | qa_pair_id | question, answer | 问答对表 | ### 4.3 招投标 (bidding) | 表名 | 主键 | 核心字段 | 说明 | |------|------|----------|------| | `tb_bidding_project` | project_id | project_name, status | 招标项目表 | | `tb_bidding_document` | doc_id | project_id, parsed_content | 招标文件表 | | `tb_bidding_template` | template_id | template_name, content | 标书模板表 | ### 4.4 智能客服 (customer_service) | 表名 | 主键 | 核心字段 | 说明 | |------|------|----------|------| | `tb_cs_conversation` | conv_id | customer_user_id, status | 对话会话表 | | `tb_cs_message` | message_id | conv_id, content | 对话消息表 | | `tb_cs_work_order` | order_id | title, status, assigned_to | 工单表 | --- ## 5. 优化方案 ### 5.1 索引优化 ```sql -- 1. 复合索引(状态 + 时间查询) CREATE INDEX idx_project_status_time ON bidding.tb_bidding_project(status, create_time DESC) WHERE deleted = false; -- 2. 部分索引(只索引活跃数据) CREATE INDEX idx_user_active ON sys.tb_sys_user(user_id) WHERE status = 'active' AND deleted = false; -- 3. GIN索引(全文检索) CREATE INDEX idx_doc_content_gin ON knowledge.tb_knowledge_document USING GIN(to_tsvector('chinese', title || ' ' || content)); -- 4. BRIN索引(时间序列) CREATE INDEX idx_log_time_brin ON log.tb_operation_log USING BRIN(create_time); ``` ### 5.2 分区策略 ```sql -- 按月分区(监控数据) CREATE TABLE agent.tb_agent_monitor ( monitor_id VARCHAR(50) NOT NULL, timestamp TIMESTAMP NOT NULL, ... PRIMARY KEY (monitor_id, timestamp) ) PARTITION BY RANGE (timestamp); -- 自动创建分区脚本 CREATE OR REPLACE FUNCTION create_monthly_partition() RETURNS void AS $$ DECLARE start_date DATE; end_date DATE; partition_name TEXT; BEGIN start_date := DATE_TRUNC('month', CURRENT_DATE + INTERVAL '1 month'); end_date := start_date + INTERVAL '1 month'; partition_name := 'tb_agent_monitor_' || TO_CHAR(start_date, 'YYYY_MM'); EXECUTE format( 'CREATE TABLE IF NOT EXISTS agent.%I PARTITION OF agent.tb_agent_monitor FOR VALUES FROM (%L) TO (%L)', partition_name, start_date, end_date ); END; $$ LANGUAGE plpgsql; ``` ### 5.3 查询优化 ```sql -- 使用CTE优化复杂查询 WITH user_roles AS ( SELECT ur.user_id, r.role_id, r.role_code FROM sys.tb_sys_user_role ur JOIN sys.tb_sys_role r ON ur.role_id = r.role_id WHERE r.deleted = false ), user_permissions AS ( SELECT ur.user_id, p.permission_code FROM user_roles ur JOIN sys.tb_sys_role_permission rp ON ur.role_id = rp.role_id JOIN sys.tb_sys_permission p ON rp.permission_id = p.permission_id ) SELECT u.username, array_agg(DISTINCT up.permission_code) as permissions FROM sys.tb_sys_user u JOIN user_permissions up ON u.user_id = up.user_id WHERE u.deleted = false GROUP BY u.user_id, u.username; ``` ### 5.4 并发控制 ```sql -- 乐观锁(版本号) UPDATE knowledge.tb_knowledge_chunk SET content = '新内容', version = version + 1 WHERE chunk_id = 'xxx' AND version = 1; -- 版本匹配才更新 -- 悲观锁 BEGIN; SELECT * FROM bidding.tb_bidding_project WHERE project_id = 'xxx' FOR UPDATE; -- 锁定记录 -- 更新... COMMIT; ``` --- ## 6. 部署与维护 ### 6.1 初始化脚本 ```bash # 位置: urbanLifelineServ/.bin/database/postgres/sql/ # 完整初始化 psql -U postgres -d urban_lifeline -f createTableAll.sql # 分模块初始化 psql -U postgres -d urban_lifeline -f createTablePermission.sql psql -U postgres -d urban_lifeline -f createTableKnowledge.sql psql -U postgres -d urban_lifeline -f createTableBidding.sql # 优化补丁 psql -U postgres -d urban_lifeline -f optimizations.sql ``` ### 6.2 备份策略 ```bash # 全量备份 pg_dump -U postgres -d urban_lifeline -F c -f backup_$(date +%Y%m%d).dump # 仅备份 Schema pg_dump -U postgres -d urban_lifeline -s -f schema_backup.sql # 仅备份数据 pg_dump -U postgres -d urban_lifeline -a -f data_backup.sql # 还原 pg_restore -U postgres -d urban_lifeline backup_20251202.dump ``` ### 6.3 监控指标 ```sql -- 表大小 SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) as size FROM pg_tables WHERE schemaname NOT IN ('pg_catalog', 'information_schema') ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC; -- 索引使用情况 SELECT schemaname, tablename, indexname, idx_scan as index_scans, idx_tup_read as tuples_read FROM pg_stat_user_indexes WHERE idx_scan = 0 ORDER BY schemaname, tablename; -- 慢查询 SELECT query, calls, total_time, mean_time, max_time FROM pg_stat_statements WHERE mean_time > 1000 -- 超过1秒 ORDER BY mean_time DESC LIMIT 10; ``` --- ## 7. 常用查询示例 ### 7.1 用户权限查询 ```sql -- 查询用户的所有权限 SELECT DISTINCT p.permission_code, p.permission_name FROM sys.tb_sys_user u JOIN sys.tb_sys_user_role ur ON u.user_id = ur.user_id JOIN sys.tb_sys_role_permission rp ON ur.role_id = rp.role_id JOIN sys.tb_sys_permission p ON rp.permission_id = p.permission_id WHERE u.username = 'admin' AND u.deleted = false; -- 查询部门下所有用户 WITH RECURSIVE dept_tree AS ( SELECT dept_id FROM sys.tb_sys_dept WHERE dept_id = 'target_dept_id' UNION ALL SELECT d.dept_id FROM sys.tb_sys_dept d JOIN dept_tree dt ON d.parent_id = dt.dept_id ) SELECT u.* FROM sys.tb_sys_user u JOIN sys.tb_sys_user_dept ud ON u.user_id = ud.user_id WHERE ud.dept_id IN (SELECT dept_id FROM dept_tree); ``` ### 7.2 知识库查询 ```sql -- 向量相似度检索(Top 5) SELECT chunk_id, content, 1 - (embedding <=> '[0.1, 0.2, ...]'::vector) as similarity FROM knowledge.tb_knowledge_chunk WHERE deleted = false ORDER BY embedding <=> '[0.1, 0.2, ...]'::vector LIMIT 5; -- 查询文档的所有版本 SELECT version, title, create_time, is_current FROM knowledge.tb_knowledge_document WHERE root_doc_id = 'root_xxx' ORDER BY version DESC; ``` ### 7.3 招投标查询 ```sql -- 统计项目状态分布 SELECT status, COUNT(*) as count, SUM(budget) as total_budget FROM bidding.tb_bidding_project WHERE deleted = false GROUP BY status; -- 查询即将截止的项目 SELECT project_name, bid_deadline, EXTRACT(DAY FROM (bid_deadline - NOW())) as days_left FROM bidding.tb_bidding_project WHERE status = 'active' AND bid_deadline > NOW() AND deleted = false ORDER BY bid_deadline ASC; ``` ### 7.4 智能客服查询 ```sql -- 查询工单处理效率 SELECT assigned_to, COUNT(*) as total_orders, AVG(EXTRACT(EPOCH FROM (resolve_time - create_time))/3600) as avg_hours, COUNT(CASE WHEN status = 'resolved' THEN 1 END) as resolved_count FROM customer_service.tb_cs_work_order WHERE create_time > NOW() - INTERVAL '30 days' GROUP BY assigned_to; -- 查询满意度统计 SELECT DATE(start_time) as date, AVG(satisfaction_score) as avg_satisfaction, COUNT(*) as total_conversations FROM customer_service.tb_cs_conversation WHERE satisfaction_score IS NOT NULL AND start_time > NOW() - INTERVAL '7 days' GROUP BY DATE(start_time) ORDER BY date DESC; ``` --- ## 附录 ### A. SQL文件清单 ``` urbanLifelineServ/.bin/database/postgres/sql/ ├── createTableAll.sql # 完整初始化 ├── createTablePermission.sql # 权限模块 ├── createTableUser.sql # 用户模块 ├── createTableFile.sql # 文件模块 ├── createTableMessage.sql # 消息模块 ├── createTableLog.sql # 日志模块 ├── createTableConfig.sql # 配置模块 ├── createTableKnowledge.sql # 知识库模块 ✨ ├── createTableBidding.sql # 招投标模块 ✨ ├── createTableCustomerService.sql # 智能客服模块 ✨ ├── createTableAgent.sql # 智能体管理模块 ✨ ├── optimizations.sql # 优化补丁 ✨ ├── initDataPermission.sql # 权限初始数据 ├── initDataUser.sql # 用户初始数据 └── initAll.sql # 完整初始化(表+数据) ``` ### B. 扩展插件 ```sql -- 向量检索 CREATE EXTENSION IF NOT EXISTS vector; -- 全文检索(中文) CREATE EXTENSION IF NOT EXISTS zhparser; CREATE TEXT SEARCH CONFIGURATION chinese (PARSER = zhparser); -- 模糊匹配 CREATE EXTENSION IF NOT EXISTS pg_trgm; -- UUID生成 CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; ``` ### C. 性能基准 | 指标 | 目标值 | 说明 | |------|--------|------| | 单表查询 | < 100ms | 主键/索引查询 | | 复杂查询 | < 500ms | 多表JOIN | | 向量检索 | < 200ms | Top-K检索 | | 写入TPS | > 1000 | 批量插入 | | 并发连接 | 200+ | HikariCP连接池 | --- **最后更新**: 2025-12-02 **维护者**: Urban Lifeline Team