neo4j-import初始化导入数据和增量导入数据为何速度相差这么大
从关系库如mysql的使用中来说,不管是否空库,导入数据的时候无非执行sql,这点与neo4j在增量导入的时候也是一致的。无论是使用apoc,load csv,batch-import,底层应该都是执行cypher语句吧,只是具体的方式不一样所以速度有所差异。 空库的时候使用neo4j-import导入的速度是相当惊人的,跟增量导入的速度根本不在一个级别上。想请教下neo4j-import工具导入的原理是什么?底层如何实现的?麻烦详细解释下。为何能达到这样高的速度。还请解惑
5 回复
@pangguoming 我是否可以这样理解:关系库中不管原来库中有多少数据,要插入的新的数据与原来的数据无关,所以是否空库不影响写入数据的速度。而图数据库在新增数据的时候,要先统计原有的数据信息,检查并建立新增数据与原有数据的联系(如自增id,并入已有label,建立节点之间的关系等),所以速度会慢。 那neo4j-import初始化数据的底层实现也是执行cypher语句来写入数据的吗?与增量导入是一致的?就是因为您说的计算节点关系id之类的原因才耗时相差这么大。我看了neo4j-import脚本里执行的是org.neo4j.tooling.ImportTool这个类,也去github上找到源码看了下。但是才疏学浅看不懂,还请指点下。