Neo4j 事务

事务封装要求

所有对 Neo4j 数据库的写操作都必须显式地封装在事务中:

try (Transaction tx = graphDb.beginTx()) {
    // 数据库操作代码
    tx.success();
}

隔离级别

默认隔离级别为 READ_COMMITTED。

死锁处理

Neo4j 实现了智能的死锁预防系统,自动抛出 DeadlockDetectedException 异常。

Neo4j 索引

创建单一索引

CREATE INDEX ON :Person(name)

创建复合索引

CREATE INDEX ON :Person(age, gender)

全文索引

CALL db.index.fulltext.createNodeIndex(
  "index_name",
  ["Label1", "Label2"],
  ["property1", "property2"]
)

查看和删除索引

SHOW INDEXES
DROP INDEX ON :Person(name)

Neo4j 约束

唯一性约束

CREATE CONSTRAINT unique_user_email
FOR (user:User) REQUIRE user.email IS UNIQUE

查看约束

call db.constraints