J'ai migré avec succès le jeu de données dblp dans la base de données neo4j et j'utilise neo4jShell pour exécuter les requêtes chiffrées. La base de données a des millions de nœuds et des relations entre les publications et les auteurs. Maintenant, lorsque je tente d'exécuter une requête sur la base de données de Neo4j il faut 10 à 12 heures pour le traitement, puis a fini avec cette erreurBase de données graphique Neo4j java.lang.OutOfMemoryError: espace de tas Java. Base de données graphique Neo4j
Error occurred in server thread; nested exception is : java.lang.OutOfMemoryError: Java heap space
J'utilise Neo4j version édition communautaire 2.2.3, Machine jdk 1.7 avec 8 gb de la mémoire et du processeur Core i7.
Requête:
neo4j-sh (?)$ MATCH (p:`publication`)-[:`publishedby`]->(a:`author`)
RETURN p.year, p.type, a.id, count(*) order by a.id desc LIMIT 25;
experts s'il vous plaît me conseiller un moyen de sortir de cette exception.
Sons comme Neo4j n'est pas un bon ajustement. Ce serait un problème trivial pour une base de données relationnelle. Les bases de données d'objets ont un sens pour les graphiques d'objets profonds. Cela ne semble pas être le cas ici. – duffymo
Dupliquer de [Comment définir l'utilisation maximale de la mémoire pour JVM?] (Http://stackoverflow.com/questions/1493913/how-to-set-the-maximum-memory-usage-for-jvm) – l4mpi
Essayez de réécrire votre requête. Exemple: 'MATCH (a: auteur) AVEC LIMIT 25 MATCH (p: publication) - [p: publishedby] -> (a) RETURN p.year, p.type, a.id ORDER BY a.id desc'. En utilisant l'instruction 'WITH'. – FylmTM