Neo4j服务器 - 进口缓慢

时间:2014-03-23 05:53:19

标签: neo4j

我有一个早期使用嵌入式neo4j的应用程序,但现在我已迁移到neo4j服务器(使用java rest binding)。我需要一次导入4k节点,大约40k属性和30k关系。当我使用嵌入式neo4j导入时,过去需要花费10-15分钟,但neo4j服务器需要3个多小时才能获得相同的数据,这是不可接受的。如何配置服务器以更快地导入数据。

这是我的neo4j.properties看起来像

# Default values for the low-level graph engine
use_memory_mapped_buffers=true
neostore.nodestore.db.mapped_memory=200M
neostore.relationshipstore.db.mapped_memory=1G
neostore.propertystore.db.mapped_memory=500M
neostore.propertystore.db.strings.mapped_memory=500M
#neostore.propertystore.db.arrays.mapped_memory=130M

# Enable this to be able to upgrade a store from 1.4 -> 1.5 or 1.4 -> 1.6
#allow_store_upgrade=true

# Enable this to specify a parser other than the default one. 1.5, 1.6, 1.7 are available
#cypher_parser_version=1.6

# Keep logical logs, helps debugging but uses more disk space, enabled for
# legacy reasons To limit space needed to store historical logs use values such
# as: "7 days" or "100M size" instead of "true"
keep_logical_logs=true

# Autoindexing

# Enable auto-indexing for nodes, default is false
node_auto_indexing=true

# The node property keys to be auto-indexed, if enabled
node_keys_indexable=primaryKey

# Enable auto-indexing for relationships, default is false
relationship_auto_indexing=true

# The relationship property keys to be auto-indexed, if enabled
relationship_keys_indexable=XY

cache_type=weak

1 个答案:

答案 0 :(得分:1)

您可以共享用于导入数据的代码吗?

java-rest-binding只是围绕详细REST API的一个瘦包装器,它不用于数据导入。

如果您想导入更多数据,我建议使用参数批量使用密码查询。查看RestCypherQueryEngine(restGraphDb.getRestAPI())。并查看restGraphDB.executeBatch()以在单个请求中执行多个查询。

请不要依赖这些查询的结果,以便稍后在导入中做出决定。

或者导入嵌入的数据,然后将目录复制到服务器data/graph.db目录。