删除图

为了释放内存,我们可以删除不再使用的图。为此,可以使用 gds.graph.drop 过程。

语法

从目录中删除图
CALL gds.graph.drop(
  graphName: String,
  failIfMissing: Boolean,
  dbName: String,
  username: String
) YIELD
  graphName: String,
  database: String,
  databaseLocation: String,
  configuration: Map,
  nodeCount: Integer,
  relationshipCount: Integer,
  schema: Map,
  schemaWithOrientation: Map,
  density: Float,
  creationTime: Datetime,
  modificationTime: Datetime,
  sizeInBytes: Integer,
  memoryUsage: String
表 1. 参数
名称 类型 可选 描述

graphName

字符串

图在目录中存储时所使用的名称。

failIfMissing(缺失时是否报错)

布尔值

true

默认情况下,当尝试删除不存在的图时,该库会抛出错误。当设置为 false 时,该过程将返回空结果。

dbName

字符串

当前数据库名称

用于投影该图的数据库名称。如果为空,则使用当前数据库。

username

字符串

当前用户

投影该图的用户名称。仅限 GDS 管理员使用。

表 2. 结果
名称 类型 描述

graphName

字符串

已删除图的名称。

database

字符串

图已投影到的数据库名称。

databaseLocation(数据库位置)

字符串

投影该图的数据库位置。可以是 local(本地)、remote(远程)或 none(无)之一。

配置

Map

用于在内存中投影图的配置。

nodeCount

整数

图中的节点数。

relationshipCount

整数

图中关系的计数。

schema

Map

内存图中包含的节点标签、关系类型和属性。

schemaWithOrientation(带方向的模式)

Map

投影图中包含的节点标签、关系类型、关系方向和属性。

density

浮点数

图的密度。

creationTime

Datetime

图投影的时间。

modificationTime(修改时间)

Datetime

图最后一次被修改的时间。

sizeInBytes(大小(字节))

整数

Java 堆中用于存储该图的字节数。

memoryUsage(内存占用)

字符串

sizeInBytes 的易读描述。

示例

以下所有示例应在空数据库中运行。

在本节中,我们将演示 gds.graph.drop 的用法。这些示例中使用的所有图名称均为虚构,应替换为实际值。

基本用法

从目录中删除图
CALL gds.graph.drop('my-store-graph') YIELD graphName;

如果我们运行上述示例两次,第二次运行将会报错。如果我们希望该过程在图不存在时静默失败,可以将第二个参数设置为布尔值 false。这样,对于不存在的图,它将返回一个空结果。

尝试从目录中删除图
CALL gds.graph.drop('my-fictive-graph', false) YIELD graphName;

多数据库支持

如果我们想要删除投影在另一个数据库上的图,可以将数据库名称设置为第三个参数。

尝试从目录中删除图
CALL gds.graph.drop('my-fictive-graph', true, 'my-other-db') YIELD graphName;

多用户支持

如果我们是 GDS 管理员,并且想要删除属于另一个用户的图,可以将用户名设置为该过程的第四个参数。如果存在多个用户拥有同名图的情况,这非常有用。

从特定用户的图目录中删除图
CALL gds.graph.drop('my-fictive-graph', true, '', 'another-user') YIELD graphName;

有关此内容的更多详细信息,请参阅 管理