问题

“我应该把数据放在哪?”

这是任何一个数据密集型 AI 后端项目启动时第一个会撞上的问题。但不是”哪个最好”的问题,而是”应该用哪几个、各自负责什么”的问题。

今天 Java 后端做 AI 应用,可选的”核心数据组件”基本就是这三件套:MySQL、Doris、Elasticsearch。再加一个 MQ 做异步。

但这三个东西看起来都能存数据、都能做查询,凭什么非要全用上?为什么不能只用一个?

重新认识这三件东西

在聊选型之前,必须先纠正一个常见误解:这三件东西不是同类

组件 真正擅长的事 不擅长的事
MySQL 强一致事务、随机点查、行级更新、垂直扩展 大规模 OLAP 聚合、模糊搜索
Doris 大数据量 OLAP 聚合、列存压缩、向量化执行 强事务(只能最终一致)、行级单点更新
Elasticsearch 倒排索引全文搜索、近似向量检索、多维度过滤 强事务、复杂 JOIN、精确聚合统计

它们在 2026 年都开始”补对方的能力”:MySQL 9.2 有了向量搜索,Doris 4.x 有了全文搜索+向量+AI Functions,ES 也有了 PPL 之类的 SQL-like 查询。

但这不意味着”现在可以三选一了”。每补一个能力,都需要付出代价——HNSW 索引让 MySQL 内存翻倍,Doris 全文搜索的分词体验不如 ES,ES 的事务能力依然鸡肋。

三角决策的三个真实场景

场景一:传统业务 + AI 搜索

  • 业务数据 → MySQL(用户、订单、配置,强一致)
  • 搜索/向量 → ES(全文+语义+聚合,索引多维度)
  • 离线分析 → Doris(业务指标的复杂聚合)

这是 90% 的 AI 后端的真实组合。MySQL 写、ES 同步、Doris 异步 ETL。

为什么不是 Doris 做 ES 的事? Doris 4.x 的全文搜索和向量搜索在性能上能打,但生态分词器、query DSL、相关性调优经验都集中在 ES。把搜索逻辑迁到 Doris,等于把 10 年积累丢掉,从零调。

场景二:AI 数据洞察平台

  • 原始日志/事件 → MQDoris(实时写入 + 即席分析)
  • 业务维度数据 → Doris 也存一份(拉链表 + 维度宽表)
  • 偶尔的全文搜索 → Doris 内置全文索引够用

这种场景是 Doris 4.x 真正发力的时候——一个 Doris 把 OLAP + 全文 + 向量全包,运维简单度飞升。前提是接受最终一致性

场景三:极简的 RAG Demo / 中小规模知识库

  • 业务数据 + 向量数据 → MySQL 9.2 一个库搞定
  • ES 都不需要

几万到几十万文档的内部知识库 RAG,MySQL 9.2 的 HNSW 完全扛得住,省了至少 2 个组件。架构最简单,运维最轻松,但上了 100 万文档就该考虑拆出来

一个反直觉的事实:MySQL + ES + Doris 不是”全用了”

更准确的描述是:

MySQL 是”主数据真相源”,ES 是”搜索加速层”,Doris 是”分析镜像层”。

数据流向是单向的:

1
2
3
4
写:业务 → MySQL → MQ → 消费 → ES / Doris
读:业务查询 → MySQL
搜索/AI 检索 → ES
数据分析/报表 → Doris

任何”写 MySQL 同时写 ES”的双写模式都该升级为 MQ 异步 + 事务消息,详见 ES 与 MySQL 双写一致性:MQ 能解决到什么程度?

我自己用的决策清单

每次碰到新项目,我会按这个顺序问:

  1. 数据强一致性需求多大? 大 → MySQL 必须有;不大 → 可以放进 Doris。
  2. 搜索需求是全文还是结构化? 全文为主 → ES;结构化过滤为主 → Doris 也能做。
  3. 向量规模到 100 万了吗? 到了 → ES 或专用向量库;没到 → MySQL 9.2 一把梭。
  4. OLAP 聚合的复杂度? 高(多表 JOIN + 窗口 + 子查询) → Doris;低 → MySQL 也行。
  5. 团队对哪个最熟? 优先选最熟的,少一个上手成本。

第 5 条经常被忽略,但它决定了”出问题时谁去修”。组件选型的最后一关永远是团队能力,不是性能跑分

意味着什么?

对正在做 AI 后端的 Java 工程师来说,2026 年的选型逻辑已经清晰:

  • 不要为”看起来更强”上更多组件。多一个组件,多一份一致性、监控、升级、值班负担。
  • 不要为”省一个组件”硬扛。Doris 做事务、ES 做聚合、MySQL 做全文,每一项都是血泪。
  • 组件不是替代关系,是分工关系。MySQL 9.2 有向量搜索不意味着 ES 该被淘汰,ES 有 PPL 不意味着 Doris 该退场。

未来 12 个月最值得关注的不是”哪个会赢”,而是当一个组件的能力溢出到另一个组件的传统领域时,怎么调整自己架构的边界。这是数据密集型 AI 后端工程师最核心的判断力。

关联阅读