Hi Michael, I had send a private message to you, do you received it?
在 2014年12月3日星期三UTC+8上午11时27分52秒,Michael Hunger写道: > > Doesn't look too bad. Would you be able to share the db with me? > > Is that the first run? > > What your your memory config, what kind of disk are you running on? > Can you share your graph.db/messages.log ? > > Michael > > On Wed, Dec 3, 2014 at 4:03 AM, li chris <[email protected] <javascript:>> > wrote: > >> yes, the profile output is: >> >> ==> 346 rows >> ==> >> ==> ColumnFilter(symKeys=["fof.uid", " >> INTERNAL_AGGREGATE2c8089fa-e900-4621-93c3-188342ef789a"], >> returnItemNames=["fof.uid", "collect(distinct id(f))"], _rows=346, >> _db_hits=0) >> ==> EagerAggregation(keys=["Cached(fof.uid of type Any)"], aggregates=["( >> >> INTERNAL_AGGREGATE2c8089fa-e900-4621-93c3-188342ef789a,Distinct(Collect(IdFunction(f)),IdFunction(f)))"], >> >> _rows=346, _db_hits=0) >> ==> Extract(symKeys=["fof", "f", " UNNAMED50", "me", "p", " >> UNNAMED43"], exprKeys=["fof.uid"], _rows=45230, _db_hits=45230) >> ==> ExtractPath(name="p", patterns=["ParsedRelation( >> UNNAMED43,Map(),ParsedEntity(me,me,Map(uuid -> >> Literal(D0Y91L0N)),List(Person(0))),ParsedEntity(f,f,Map(),List()),List(),BOTH,false)", >> >> "ParsedVarLengthRelation( >> >> UNNAMED50,Map(),ParsedEntity(f,f,Map(),List()),ParsedEntity(fof,fof,Map(),List()),List(),BOTH,false,Some(0),Some(2),None)"], >> >> _rows=45230, _db_hits=0) >> ==> Filter(pred="Property(fof,uid(1)) > Literal(0)", _rows=45230, >> _db_hits=1240584) >> ==> TraversalMatcher(start={"label": "Person", "query": >> "Literal(D0Y91L0N)", "identifiers": ["me"], "property": "uuid", "producer": >> "SchemaIndex"}, trail="(me)-[ UNNAMED43 WHERE true AND >> true]-(f)-[*0..2]-(fof)", _rows=1240584, _db_hits=1254044) >> >> Thanks Michael >> >> 在 2014年12月2日星期二UTC+8下午7时12分44秒,Michael Hunger写道: >>> >>> Can you share the profile output? >>> >>> prefix your query with "profile" in the bin/neo4j-shell or >>> http://localhost:7474/webadmin/#/console/ >>> >>> On Tue, Dec 2, 2014 at 9:34 AM, li chris <[email protected]> wrote: >>> >>>> thanks Michael, >>>> >>>> I have created uniqueness constraint like this:CREATE CONSTRAINT ON >>>> (person:Person) ASSERT person.uuid IS UNIQUE >>>> >>>> there is only one relationship-type and direction is not useful in my >>>> application. >>>> >>>> uuid is the user id from facebook, uid is the user id of my application >>>> >>>> the result has many repeated uid if no distinct >>>> >>>> now the query is: >>>> >>>> MATCH p = (me:Person{uuid:'D0Y91L0N'})-[]-(f)-[*0..2]-(fof) >>>> WHERE fof.uid > 0 >>>> RETURN distinct fof.uid, collect(distinct id(f)) >>>> >>>> >>>> >>>> 在 2014年12月2日星期二UTC+8上午2时57分23秒,Michael Hunger写道: >>>>> >>>>> create index on :Person (uuid); >>>>> >>>>> what kinds of relationship-types do you have? >>>>> >>>>> Try to a dd a direction: >>>>> >>>>> depending on your avg relationship-count, you might visit rels^steps >>>>> paths, e.g. for 100 rels per person and you have up to 4 steps it is >>>>> 100^4 >>>>> or 100M paths >>>>> >>>>> You also have a typo in your query fof.uid should probably be fof.uuid >>>>> same in the return clause ?? >>>>> Also you treat uid as numeric while uuid seems to be string ? >>>>> >>>>> if you do aggregation you don't need distinct >>>>> and it doesnt really make sense to aggregate friends by friends of >>>>> friends >>>>> >>>>> MATCH p = (me:Person{uuid:'D0Y91L0N'})-[]->(f)-[*0..3]->(fof) >>>>> WHERE fof.uid > 0 >>>>> WITH distinct fof.uid, collect(distinct id(f)) >>>>> >>>>> I think it would help to take the Neo4j online training again. >>>>> http://neo4j.com/online-training >>>>> >>>>> >>>>> Cheers, Michael >>>>> >>>>> On Sun, Nov 30, 2014 at 11:07 AM, li chris <[email protected]> wrote: >>>>> >>>>>> Hi all, >>>>>> I'm leaning to use neo4j for relation analysis recently. Today I >>>>>> found it took too long for my cypher query took to finish. >>>>>> >>>>>> neo4j version: 2.0.2 >>>>>> nodes num: 350,000 >>>>>> relation num: 370,000 >>>>>> cypher query: >>>>>> >>>>>> MATCH p = (me:Person{uuid:'D0Y91L0N'})-[]-(f)-[*0..3]-(fof) >>>>>> WHERE fof.uid > 0 >>>>>> WITH distinct fof.uid, collect(distinct id(f)) >>>>>> >>>>>> >>>>>> the query take 37s for 346 rows. >>>>>> >>>>>> What should I do to improve my query performance? Any suggestions >>>>>> would be appreciated! >>>>>> >>>>>> Thanks in advance. >>>>>> >>>>>> chris >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Neo4j" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Neo4j" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
