いくつかのテストを行っていました。
Wesなどによるいくつかの素晴らしい提案に基づいて、マルチスレッド環境で大規模に挿入するためにキャッシュなしでいくつかのneo4jプロパティを調整しましたが、パフォーマンスは悪くありません。
ただし、(ノードに)インデックスを導入すると、パフォーマンスが大幅に低下します。違いは簡単に5倍です。それを改善するための構成設定はありますか?
前もって感謝します、
サチン
Neo4jバージョン-1.8.1; JVM-1.6
いくつかのテストを行っていました。
Wesなどによるいくつかの素晴らしい提案に基づいて、マルチスレッド環境で大規模に挿入するためにキャッシュなしでいくつかのneo4jプロパティを調整しましたが、パフォーマンスは悪くありません。
ただし、(ノードに)インデックスを導入すると、パフォーマンスが大幅に低下します。違いは簡単に5倍です。それを改善するための構成設定はありますか?
前もって感謝します、
サチン
Neo4jバージョン-1.8.1; JVM-1.6
ノード (または関係) を Lucene インデックスに挿入すると、コストがかかります。Lucene は、フルテキスト/キーワード検索用に設計された、強力ですが複雑なツールです。裸のデータベースと比較すると、かなり遅いです。
これが、Michael のバッチ挿入ツールのように、ほとんどの一括挿入ツールが非同期でインデックス作成を行う理由です。
http://jexp.de/blog/2012/10/parallel-batch-inserter-with-neo4j/
トランザクションを回避したり、ストア ファイルを直接書き込んだりするものもあります。
http://blog.xebia.com/2012/11/13/combining-neo4j-and-hadoop-part-i/
パフォーマンスを向上させるには、SSD ディスクを使用すると役立つ場合があります。しかし、Neo4j は完全な ACID トランザクション データベースであり、Lucene インデックスはトランザクションと密接に結合されているため (これは良いことです)、最適な書き込みパフォーマンスのためにインフラストラクチャを最適化する以外にできることはあまりありません。
この追加の回答が、Linux の ext4 ファイルシステムで Neo4j を実行しているすべての人に引き続き使用される場合に備えて:
トランザクションの安全性をいくらか犠牲にすることで (USV/バッテリ バッファ システムまたはラップトップでは無視できます)、書き込みパフォーマンスを 10 ~ 15 倍向上させることができます。
この最近のブログ投稿で詳細をお読みください: http://structr.org/blog/neo4j-performance-on-ext4