Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql की तुलना में neo4j प्रदर्शन (इसे कैसे सुधारा जा सकता है?)

मुझे खेद है कि आप परिणामों को पुन:पेश नहीं कर सकते। हालांकि, मैकबुक एयर (1.8 गीगाहर्ट्ज i7, 4 जीबी रैम) पर 2 जीबी हीप के साथ, जीसीआर कैश, लेकिन कैश की कोई वार्मिंग नहीं, और कोई अन्य ट्यूनिंग नहीं, समान आकार के डेटासेट (1 मिलियन उपयोगकर्ता, प्रति व्यक्ति 50 मित्र) के साथ। , मैं बार-बार 1.9.2 पर ट्रैवर्सल फ्रेमवर्क का उपयोग करके लगभग 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)

सादर

इयान



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL बैकअप लेने और पुनर्स्थापित करने का सबसे तेज़ तरीका

  2. रेल विकास - 'लोकलहोस्ट' (10061) पर MySQL सर्वर से कनेक्ट नहीं हो सकता

  3. MySQL DECLARE में वेरिएबल में चयन करें सिंटैक्स त्रुटि का कारण बनता है?

  4. PHP/MySQL - बहुवचन शामिल करें लेकिन एकवचन को बाहर करें

  5. MySQL PHP ज़िप कोड तुलना विशेष रूप से दूरी