主题
面试速答(先看这里)
**一句话结论:**ES 虽然也可以认为是一个数据库,但是他并不支持传统意义上的 ACID 事务 ,因为 ES它被设计出来是主要用作搜索引擎的,主要是提升查询效率的。
60秒标准回答:
ES 虽然也可以认为是一个数据库,但是他并不支持传统意义上的 ACID 事务 ,因为 ES它被设计出来是主要用作搜索引擎的,主要是提升查询效率的。如果支持复杂的事务操作意味着就要牺牲性能优势
虽然 Elasticsearch 不支持传统的事务,但是他是可以确保单个文档的更改(如创建、更新、删除)是原子性的。 这意味着任何文档级的操作都完整地成功或完整地失败,但不保证跨多个文档或操作的一致性
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**虽然 Elasticsearch 不支持传统的事务,但是他是可以确保单个文档的更改(如创建、更新、删除)是原子性的。
**记忆锚点:**Elasticsearch → 多个文档或操作的一致性 → 出来是主要用作搜索引 → ACID
关键取舍:
- 如果支持复杂的事务操作意味着就要牺牲性能优势。
易错提醒:
- 这意味着任何文档级的操作都完整地成功或完整地失败,但不保证跨多个文档或操作的一致性。
追问准备:
- 围绕「Elasticsearch」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「多个文档或操作的一致性」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「出来是主要用作搜索引」:底层原理是什么?使用时有哪些边界和常见坑?
- 如果线上出现异常,你会如何定位、验证并规避?
典型回答
ES 虽然也可以认为是一个数据库,但是他并不支持传统意义上的 ACID 事务,因为 ES它被设计出来是主要用作搜索引擎的,主要是提升查询效率的。如果支持复杂的事务操作意味着就要牺牲性能优势。
**虽然 Elasticsearch 不支持传统的事务,但是他是可以确保单个文档的更改(如创建、更新、删除)是原子性的。**这意味着任何文档级的操作都完整地成功或完整地失败,但不保证跨多个文档或操作的一致性。