Skip to content

面试速答(先看这里)

**一句话结论:**ES 虽然也可以认为是一个数据库,但是他并不支持传统意义上的 ACID 事务 ,因为 ES它被设计出来是主要用作搜索引擎的,主要是提升查询效率的。

60秒标准回答:

ES 虽然也可以认为是一个数据库,但是他并不支持传统意义上的 ACID 事务 ,因为 ES它被设计出来是主要用作搜索引擎的,主要是提升查询效率的。如果支持复杂的事务操作意味着就要牺牲性能优势

虽然 Elasticsearch 不支持传统的事务,但是他是可以确保单个文档的更改(如创建、更新、删除)是原子性的。 这意味着任何文档级的操作都完整地成功或完整地失败,但不保证跨多个文档或操作的一致性

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**虽然 Elasticsearch 不支持传统的事务,但是他是可以确保单个文档的更改(如创建、更新、删除)是原子性的。

**记忆锚点:**Elasticsearch → 多个文档或操作的一致性 → 出来是主要用作搜索引 → ACID

关键取舍:

  • 如果支持复杂的事务操作意味着就要牺牲性能优势。

易错提醒:

  • 这意味着任何文档级的操作都完整地成功或完整地失败,但不保证跨多个文档或操作的一致性。

追问准备:

  • 围绕「Elasticsearch」:底层原理是什么?使用时有哪些边界和常见坑?
  • 围绕「多个文档或操作的一致性」:底层原理是什么?使用时有哪些边界和常见坑?
  • 围绕「出来是主要用作搜索引」:底层原理是什么?使用时有哪些边界和常见坑?
  • 如果线上出现异常,你会如何定位、验证并规避?

典型回答 ​

ES 虽然也可以认为是一个数据库,但是他并不支持传统意义上的 ACID 事务,因为 ES它被设计出来是主要用作搜索引擎的,主要是提升查询效率的。如果支持复杂的事务操作意味着就要牺牲性能优势。

**虽然 Elasticsearch 不支持传统的事务,但是他是可以确保单个文档的更改(如创建、更新、删除)是原子性的。**这意味着任何文档级的操作都完整地成功或完整地失败,但不保证跨多个文档或操作的一致性。