【个人主页玄同765】大语言模型LLM开发工程师中国传媒大学·数字媒体技术智能交互与游戏设计深耕领域大语言模型开发 / RAG知识库 / AI Agent落地 / 模型微调技术栈Python / LangChain/RAGDifyRedisMilvus| SQL/NumPy | FastAPIDocker ️工程能力专注模型工程化部署、知识库构建与优化擅长全流程解决方案「让AI交互更智能让技术落地更高效」欢迎技术探讨/项目合作 关注我解锁大模型与智能交互的无限可能摘要在 LLM大语言模型开发中数据库是存储和管理数据的核心组件。不同类型的数据库适用于不同的场景比如关系型数据库适合结构化数据向量数据库适合存储大模型的嵌入向量图数据库适合处理复杂的关联关系。本文从数据库的种类、LLM 开发中的应用、选型指南3 个维度详细介绍所有类型的数据库帮助 LLM 开发者选择最适合的数据库。一、数据库的种类从关系型到向量数据库数据库可以分为关系型数据库、非关系型数据库NoSQL、向量数据库、时序数据库、NewSQL五大类每类又包含多种具体的数据库。1.1 关系型数据库RDBMS核心特点使用表格结构存储数据支持 SQL 查询强调数据的一致性和完整性代表数据库MySQL、PostgreSQL、Oracle、SQL Server、SQLite适用场景结构化数据存储比如用户信息、订单数据、财务数据LLM 开发中的应用存储用户信息、对话历史、应用配置等结构化数据。1.1.1 MySQL vs PostgreSQL 对比特性MySQLPostgreSQL性能读取性能优秀复杂查询性能优秀扩展性主从复制支持分区、并行查询JSON 支持基础支持完善的 JSONB 支持全文检索基础支持强大的全文检索适用场景Web 应用、电商复杂分析、地理数据1.2 非关系型数据库NoSQL非关系型数据库不使用表格结构支持多种数据模型适合处理非结构化或半结构化数据。1.2.1 键值数据库Key-Value核心特点使用键值对存储数据查询速度快适合高并发场景代表数据库Redis、Memcached、Amazon DynamoDB、RocksDB适用场景缓存、会话存储、实时数据处理LLM 开发中的应用存储大模型的缓存数据、会话信息、实时对话数据。1.2.2 文档数据库Document核心特点使用 JSON 或 BSON 格式存储文档支持灵活的数据结构代表数据库MongoDB、CouchDB、Amazon DocumentDB、Elasticsearch适用场景非结构化数据存储比如用户评论、博客文章、产品描述LLM 开发中的应用存储大模型的训练数据、生成的文本、非结构化的对话历史。1.2.3 列族数据库Column-Family核心特点按列族存储数据适合处理大规模的列数据代表数据库Cassandra、HBase、Amazon Redshift、ClickHouse适用场景大数据分析、日志存储、时间序列数据LLM 开发中的应用存储大模型的训练日志、监控数据、时间序列的对话数据。1.2.4 图数据库Graph核心特点使用节点和边存储数据适合处理复杂的关联关系代表数据库Neo4j、Amazon Neptune、JanusGraph、TigerGraph适用场景社交网络、知识图谱、推荐系统LLM 开发中的应用存储知识图谱、实体关系、关联问答数据。1.3 向量数据库Vector Database核心特点存储和检索向量数据支持相似度查询代表数据库Pinecone、Chroma、Weaviate、Milvus、Qdrant、Faiss适用场景大模型的嵌入向量存储、语义搜索、推荐系统LLM 开发中的应用存储大模型的文本嵌入向量、图像嵌入向量支持 RAG检索增强生成中的语义检索。1.3.1 主流向量数据库对比数据库开源部署方式特点适用规模Chroma是本地/云端轻量级、易用中小规模Milvus是分布式高性能、可扩展大规模Pinecone否全托管无需运维各种规模Weaviate是本地/云端支持混合搜索中大规模Qdrant是本地/云端Rust 编写、高性能中大规模1.4 时序数据库Time-Series Database核心特点专门存储时间序列数据支持高效的时间范围查询和聚合代表数据库InfluxDB、TimescaleDB、Prometheus、TDengine适用场景监控数据、IoT 数据、金融行情、性能指标LLM 开发中的应用存储模型推理延迟、Token 消耗速率、API 调用频率等监控指标。1.5 NewSQL 数据库核心特点结合关系型数据库的 ACID 特性和 NoSQL 的可扩展性代表数据库TiDB、CockroachDB、Google Spanner、YugabyteDB适用场景需要强一致性的大规模分布式系统LLM 开发中的应用大规模用户系统、分布式对话历史存储、多地域部署的 LLM 应用。二、LLM 开发中的数据库应用从训练到部署在 LLM 开发的不同阶段需要使用不同类型的数据库。2.1 训练阶段数据存储与管理关系型数据库存储训练数据的元数据比如数据集名称、样本数量、标签信息文档数据库存储非结构化的训练数据比如文本样本、图像样本、音频样本列族数据库存储大规模的训练数据比如百万级以上的文本样本键值数据库存储训练过程中的缓存数据比如预训练模型的中间结果。2.1.1 训练数据管理最佳实践-- 训练数据集元数据表设计示例 CREATE TABLE training_datasets ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, data_type VARCHAR(50), -- text, image, audio sample_count BIGINT, storage_path TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, version VARCHAR(50) ); -- 训练任务记录表 CREATE TABLE training_tasks ( id SERIAL PRIMARY KEY, dataset_id INTEGER REFERENCES training_datasets(id), model_name VARCHAR(255), status VARCHAR(50), -- pending, running, completed, failed start_time TIMESTAMP, end_time TIMESTAMP, metrics JSONB );2.2 推理阶段RAG 与语义检索向量数据库存储大模型的嵌入向量支持 RAG 中的语义检索比如检索与用户问题相关的文档片段图数据库存储知识图谱支持关联问答比如 张三的朋友有哪些关系型数据库存储用户的对话历史支持多轮对话的上下文管理键值数据库存储大模型的推理缓存比如重复问题的回答结果提高推理速度。2.2.1 RAG 系统数据库架构示例# RAG 系统数据库交互示例 import chromadb import psycopg2 import redis class RAGDatabaseManager: def __init__(self): # 向量数据库 - 存储文档嵌入 self.vector_db chromadb.Client() self.collection self.vector_db.create_collection(documents) # 关系型数据库 - 存储元数据 self.pg_conn psycopg2.connect( hostlocalhost, databaserag_db, useruser, passwordpass ) # 缓存数据库 - 存储热门查询结果 self.cache redis.Redis(hostlocalhost, port6379, db0) def store_document(self, doc_id, content, embedding, metadata): # 存储到向量数据库 self.collection.add( ids[doc_id], embeddings[embedding], documents[content], metadatas[metadata] ) # 存储元数据到 PostgreSQL cursor self.pg_conn.cursor() cursor.execute( INSERT INTO documents (id, title, source, created_at) VALUES (%s, %s, %s, NOW()), (doc_id, metadata[title], metadata[source]) ) self.pg_conn.commit() def search_similar(self, query_embedding, top_k5): # 先检查缓存 cache_key fsearch:{hash(str(query_embedding))} cached_result self.cache.get(cache_key) if cached_result: return json.loads(cached_result) # 向量相似度搜索 results self.collection.query( query_embeddings[query_embedding], n_resultstop_k ) # 缓存结果 self.cache.setex(cache_key, 3600, json.dumps(results)) return results2.3 部署阶段应用数据管理关系型数据库存储用户信息、应用配置、权限管理等结构化数据文档数据库存储用户的自定义模板、生成的内容、非结构化的应用数据键值数据库存储应用的缓存数据、会话信息、实时数据向量数据库存储应用的知识库数据支持用户的语义查询。2.3.1 对话历史管理表设计-- 用户表 CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(255) UNIQUE NOT NULL, email VARCHAR(255) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, preferences JSONB DEFAULT {} ); -- 会话表 CREATE TABLE conversations ( id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(id), title VARCHAR(255), model_name VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 消息表 CREATE TABLE messages ( id SERIAL PRIMARY KEY, conversation_id INTEGER REFERENCES conversations(id), role VARCHAR(20), -- user, assistant, system content TEXT, tokens_used INTEGER, latency_ms INTEGER, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 创建索引优化查询 CREATE INDEX idx_messages_conversation ON messages(conversation_id, created_at); CREATE INDEX idx_conversations_user ON conversations(user_id, updated_at DESC);三、LLM 开发中的数据库选型指南根据场景选择最合适的数据库3.1 选型维度数据类型结构化数据、非结构化数据、半结构化数据、向量数据查询需求SQL 查询、键值查询、语义检索、关联查询性能要求高并发、低延迟、大规模数据处理一致性要求强一致性、最终一致性部署方式本地部署、云部署、分布式部署。3.2 选型决策流程开始选型 │ ▼ 数据是否结构化 / \ 是 否 │ │ ▼ ▼ 是否需要复杂事务 是否是向量数据 / \ / \ 是 否 是 否 │ │ │ │ ▼ ▼ ▼ ▼ PostgreSQL 读多写少 向量数据库 是否有复杂关联 /MySQL / \ (Chroma/ / \ 是 否 Milvus) 是 否 │ │ │ │ ▼ ▼ ▼ ▼ MongoDB Redis/ 图数据库 海量数据 (缓存) DynamoDB (Neo4j) / \ 是 否 │ │ ▼ ▼ Cassandra/ 文档数据库 ClickHouse (MongoDB)3.3 场景选型示例3.3.1 RAG 问答系统核心需求语义检索、文档存储、实时查询选型建议向量数据库Pinecone 或 Chroma存储文档的嵌入向量关系型数据库PostgreSQL存储文档的元数据和用户的对话历史键值数据库Redis存储缓存数据和会话信息。架构示例用户提问 → API Gateway → Redis(检查缓存) │ 缓存命中 ─┴─ 缓存未命中 │ │ ▼ ▼ 返回结果 向量检索(Chroma) │ ▼ 重排序 上下文构建 │ ▼ LLM 生成回答 │ ▼ 存储到 PostgreSQL3.3.2 知识图谱问答系统核心需求关联查询、实体关系存储、语义检索选型建议图数据库Neo4j存储知识图谱的节点和边向量数据库Weaviate存储实体的嵌入向量支持语义检索关系型数据库MySQL存储用户信息和应用配置。3.3.3 大模型训练平台核心需求大规模数据存储、高并发读写、数据一致性选型建议列族数据库Cassandra存储大规模的训练数据文档数据库MongoDB存储非结构化的训练样本关系型数据库PostgreSQL存储训练任务的元数据和结果键值数据库Redis存储训练过程中的缓存数据。3.3.4 聊天机器人应用核心需求会话存储、实时查询、多轮对话管理选型建议关系型数据库MySQL存储用户信息和对话历史键值数据库Redis存储会话信息和缓存数据向量数据库Chroma存储用户的历史对话嵌入向量支持上下文关联。3.3.5 多模态 AI 应用核心需求图像、文本、音频数据的统一存储和检索选型建议对象存储MinIO / AWS S3存储原始媒体文件向量数据库Milvus存储多模态嵌入向量文档数据库MongoDB存储媒体文件的元数据图数据库Neo4j存储多模态数据之间的关系。四、数据库选型的最佳实践4.1 优先选择开源数据库开源数据库成本低、灵活性高、社区活跃适合 LLM 开发的初期阶段代表数据库MySQL、PostgreSQL、MongoDB、Redis、Chroma、Neo4j。4.2 考虑云数据库服务云数据库服务提供高可用性、弹性扩展、自动备份等功能适合生产环境代表服务Amazon RDS、Amazon DynamoDB、Amazon Neptune、Pinecone、阿里云 RDS、腾讯云数据库。4.3 混合使用多种数据库在 LLM 开发中通常需要混合使用多种数据库比如向量数据库 关系型数据库 键值数据库示例RAG 问答系统使用向量数据库存储嵌入向量关系型数据库存储文档元数据键值数据库存储缓存数据。4.4 性能优化索引优化为数据库添加索引提高查询速度缓存策略使用 Redis 等缓存减少数据库的压力数据分片对大规模数据进行分片提高处理能力连接池使用连接池管理数据库连接避免频繁创建连接读写分离对于读多写少的场景使用主从复制实现读写分离。4.5 数据安全与备份定期备份设置自动备份策略确保数据安全加密存储敏感数据加密存储防止数据泄露访问控制实施严格的权限管理遵循最小权限原则审计日志记录数据库操作日志便于问题追踪。五、总结数据库是 LLM 开发的核心组件在 LLM 开发中数据库的选型直接影响应用的性能、可扩展性和成本。不同类型的数据库适用于不同的场景数据库类型核心优势典型应用场景推荐数据库关系型数据库强一致性、复杂事务用户信息、订单数据PostgreSQL、MySQL键值数据库超高性能、低延迟缓存、会话存储Redis、DynamoDB文档数据库灵活 schema、易扩展非结构化数据、内容管理MongoDB、Elasticsearch图数据库复杂关系查询知识图谱、社交网络Neo4j、Neptune向量数据库语义检索、相似度搜索RAG、推荐系统Chroma、Milvus、Pinecone时序数据库时间序列优化监控指标、IoTInfluxDB、TimescaleDBNewSQL分布式强一致性大规模分布式系统TiDB、CockroachDB未来趋势展望多模态数据库融合未来的数据库将更好地支持文本、图像、音频等多模态数据的统一存储和检索。AI 原生数据库数据库将内置 AI 能力如自动索引优化、查询优化、异常检测等。Serverless 数据库无服务器架构将成为主流开发者无需关心底层基础设施。边缘数据库随着边缘计算的发展轻量级边缘数据库将在 IoT 和移动场景中发挥重要作用。向量数据库标准化向量数据库将形成行业标准与主流 LLM 框架深度集成。通过本文的介绍相信你已经对所有类型的数据库有了全面的了解。在实际项目中建议根据具体业务需求、团队技术栈和运维能力选择最合适的数据库方案。记住没有最好的数据库只有最适合的数据库。参考资料Chroma DocumentationMilvus DocumentationNeo4j Graph DatabasePostgreSQL DocumentationRedis DocumentationVector Database Comparison本文最后更新日期2026-02-04