ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Abdullah Kauchali <abdullah.kauch...@isanusi.com>
Subject Re: What is N+1
Date Wed, 09 Feb 2005 12:12:20 GMT
Ok, the flip-side of this approach is that you increase the size of the 
returned result by N*(size of the lookup).

So if the lookup is 10 bytes and you are fetching 10 records of the 
child, your payload size is 100 bytes
instead of 10 bytes.   ( I wonder if JDBC makes some internal 
optimisations - keeps a pointer or something
to same record if duplicates exist?)

That's not a problem per se, but which one is better:

1.  This approach or ...
2.  Using an "in clause" and making another round-trip?

Cheers

Abdullah


Michal Malecki wrote:

>Well, I think you need only simple join in your sql, no extra features of
>ibatis needed:
>select * from CHILD, PARENT where parent_id=PARENT.id;
>am I right?
>Michal Malecki
>
>  
>
>>What about relationships from the child up to the parent?  Are they also
>>classified as N+1?
>>
>>Suppose we have child table with a fk of parent_id.
>>
>>if I do:
>>
>>  SELECT * from CHILD
>>
>>I'll get a column with parent_id with values.
>>
>>Now suppose I also want details pertaining to the parent_id along with
>>the recordset of Child, I need not
>>do 10 separate selects for the parent ...  is this also an N+1 problem?
>>
>>What is the preferred iBatis model for this?
>>
>>Cheers
>>
>>Abdullah
>>
>>
>>Kris Jenkins wrote:
>>
>>    
>>
>>>friendVU admin wrote:
>>>
>>>      
>>>
>>>>What is n+1?
>>>>.V
>>>>        
>>>>
>>>
>>>n++!   :-P
>>>
>>>It's when each child object in a complex query has to be selected
>>>seperately.  If 'parent' has 10 'children', you end up with 10+1
>>>select statements being issued.  See the developer's guide under
>>>'Avoiding N+1 selects' for the full lowdown.  Version 2.0.9 comes with
>>>new groupBy goodness to banish the N+1 problem.
>>>
>>>Kris
>>>
>>>      
>>>
>
>
>
>  
>

Mime
View raw message