sql >> データベース >  >> RDS >> Mysql

mysqlと比較したneo4jのパフォーマンス(どのように改善できますか?)

    結果を再現できず申し訳ありません。ただし、2GBのヒープとGCRキャッシュを備えたMacBookAir(1.8 GHz i7、4 GB RAM)では、キャッシュのウォーミングやその他の調整は行われず、同様のサイズのデータ​​セット(100万ユーザー、1人あたり50人の友人)が使用されます。 、1.9.2でTraversal Frameworkを使用して約900ミリ秒を繰り返し取得します:

    public class FriendOfAFriendDepth4
    {
        private static final TraversalDescription traversalDescription = 
             Traversal.description()
                .depthFirst()
                .uniqueness( Uniqueness.NODE_GLOBAL )
                .relationships( withName( "FRIEND" ), Direction.OUTGOING )
                .evaluator( new Evaluator()
                {
                    @Override
                    public Evaluation evaluate( Path path )
                    {
                        if ( path.length() >= 4 )
                        {
                            return Evaluation.INCLUDE_AND_PRUNE;
                        }
                        return Evaluation.EXCLUDE_AND_CONTINUE;
    
                    }
                } );
    
        private final Index<Node> userIndex;
    
        public FriendOfAFriendDepth4( GraphDatabaseService db )
        {
            this.userIndex = db.index().forNodes( "user" );
        }
    
        public Iterator<Path> getFriends( String name )
        {
            return traversalDescription.traverse( 
                userIndex.get( "name", name ).getSingle() )
                    .iterator();
        }
    
        public int countFriends( String name )
        {
            return  count( traversalDescription.traverse( 
                userIndex.get( "name", name ).getSingle() )
                     .nodes().iterator() );
        }
    }
    

    サイファーは遅いですが、あなたが提案するほど遅くはありません:約3秒:

    START person=node:user(name={name})
    MATCH (person)-[:FRIEND]->()-[:FRIEND]->()-[:FRIEND]->()-[:FRIEND]->(friend)
    RETURN count(friend)
    

    よろしくお願いします

    ian



    1. C#-oraclelongraw型の値を取得する方法

    2. mysqldumpエラー1045正しいパスワードなどにもかかわらずアクセスが拒否されました

    3. MySQLメモリテーブルに相当するPostgreSQL?

    4. NoSQLデータベースの利点–知っておくべきことすべて