数据库内部结构和事务行为
为了维护数据完整性并确保可靠的事务行为,Neo4j 数据库管理系统支持具有完整 ACID 特性的事务,并使用预写式事务日志来确保持久性。
-
原子性 — 如果事务的一部分失败,数据库状态将保持不变。
-
一致性 — 每个事务都使数据库处于一致状态。
-
隔离性 — 在事务执行期间,修改后的数据无法被其他操作访问。
-
持久性 — 数据库管理系统始终可以恢复已提交事务的结果。
Neo4j 数据库管理系统支持以下事务行为
-
所有访问图、索引或模式的数据库操作都必须在事务中执行。
-
默认隔离级别是 读已提交 隔离级别。
-
写锁在节点和关系级别自动获取。但是,如果你想达到更高的隔离级别——可串行化 隔离级别,你也可以手动获取写锁。
-
通过遍历检索到的数据不受其他事务修改的保护。
-
可能会发生不可重复读(即,仅获取写锁并持有直到事务结束)。
-
死锁检测内置于核心事务管理中。
以下章节详细描述了事务行为以及如何控制它
有关 Neo4j 4.4 的信息,请参阅 Java 参考 4.4 → 事务管理。 |