If you blame your lack of skill on a framework then you probably shouldn't 
be using that framework. Limitby is supposed to be use to page though 
results, or to have a window through results, with the idea being you get 
to scroll your window. I think perhaps we could add a 'top(#)' operator 
which would be the most obvious choice.

On Tuesday, October 8, 2013 4:45:12 PM UTC-7, Michele Comitini wrote:
>
> Whenever there is a big performance impact it's better not to make 
> assumptions on what is the most common use case.
> I hate to hear the "web2py is slow" refrain because it's false if you have 
> a good knowledge of web2py.  What concerns me is that doing hidden things 
> that impact on performance scares the newcomer and the casual tester.
>
> -------
> Suppose I am new to web2py, but not a newbie to programming and python.  I 
> have a big database and I want to publish things out of it with a nice 
> framework.  I know that accessing the db is critical.  I heard web2py is 
> easy to use.
>
> I do a simple test.  I want to know if there are more than one record of 
> the kind I am looking for:
>
> len(db(db.long_table.value=='Am I the only one here?').select(
> db.long_table.id, limitby(0,2)))
>
> I expect it faster than count() on a really big table.  Result slow as 
> hell.  Consequence is ... ok I will use a better framework and I will post 
> somewhere that web2py is nice, but slow, not for serious projects.
> -------
>
> Even worse in older releases doing a db.long_table(value='Am I the only 
> one here?') was slow, very slow and those shortcuts in web2py code are used 
> everywhere.  To the casual user it was the clear sign that no one did 
> serious testing on a large database.
>
> mic
>
>
>
> 2013/10/8 Niphlod <nip...@gmail.com <javascript:>>
>
>> the smartest thing to do would be to avoid orderby when there are less 
>> records than paginate.
>> However, it's unusual to have a query misbehaving for a couple hundreds 
>> records, and I really don't see the point on using grid with paginate=10000.
>> Given that pagination is 99% of the time required, we need to orderby on 
>> something....
>> What we should orderby to then? The only assured field that has an 
>> implicit index is the id (being a PK). Orderby(ing) a PK should definitely 
>> not require a full scan.
>> I don't see any particular case other than exceptional misbehaving tables 
>> to turn off the ordering.
>>
>>
>> On Tuesday, October 8, 2013 1:53:50 PM UTC+2, Anthony wrote:
>>>
>>>
>>> db.table(id=3) is for returning the sole matching record, so you don't 
>>>>> have to worry about the database's arbitrary ordering of results. But 
>>>>> when 
>>>>> using limitby to return a particular subset of records (e.g., when doing 
>>>>> pagination), don't you need to specify an orderby to guarantee that the 
>>>>> results on each query will remain in the same order?
>>>>>
>>>>> Yes you need to do it, and you need to do it in a proper way.  That is 
>>>> why i think that forcing orderby when limitby is used is not a good idea. 
>>>>  Seems just a hack for the grid, not a generic approach.  IMHO it's better 
>>>> to be explicit.
>>>> Consider that on datasets of size comparable to the window imposed by 
>>>> the limitby, the result is that if one uses limitby then he goes slower 
>>>> than without it, because of the implicit orderby. Maybe he wonders why 
>>>> (and 
>>>> all sorts of bad things about web2py ;- )
>>>>
>>>
>>> I suppose we could default orderby_on_limitby to False in the general 
>>> case and leave it to the developer to explicitly orderby when using 
>>> limitby, but what do you propose for the grid?
>>>
>>> Anthony
>>>
>>>>  -- 
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to web2py+un...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to