数据库内部机制和事务行为

为了维护数据完整性并确保可靠的事务行为,Neo4j DBMS 支持具有完整 ACID 属性的事务,它使用预写事务日志来确保持久性。

  • 原子性 — 如果事务的一部分失败,数据库状态将保持不变。

  • 一致性 — 每个事务都会使数据库处于一致状态。

  • 隔离性 — 在事务期间,其他操作无法访问修改后的数据。

  • 持久性 — DBMS 始终可以恢复已提交事务的结果。

Neo4j DBMS 支持以下事务行为

  • 所有访问图、索引或模式的数据库操作必须在事务中执行。

  • 默认隔离级别为读已提交隔离级别。

  • 写锁是在节点和关系级别自动获取的。但是,如果您想实现更高级别的隔离 — 可序列化隔离级别,您也可以手动获取写锁。

  • 通过遍历检索的数据不受其他事务修改的保护。

  • 可能会发生不可重复读(即,仅获取写锁并保持到事务结束)。

  • 死锁检测已内置到核心事务管理中。

以下部分详细描述了事务行为以及如何控制它