So according to your answers and others, this limitation is always there even 
the document said "obsolete" ? Just want to double confirm.


Thanks!


Qiulang


At 2016-03-03 11:06:08, "Darren Duncan" <darren at darrenduncan.net> wrote:
>On 2016-03-02 6:48 PM, ?? wrote:
>>> A better way that is very similar is to use WHERE and LIMIT instead.
> >
>> I know that but as I just replied to this thread, if I do that I will then 
>> have to record each columns I use for each table I want scroll cursor. So 
>> from the implementation point of view, using LIMIT & OFFSET is easier.
>>
>> Qiulang
>
>You have to record the columns anyway in order to know what you're sorting 
>your 
>results by, this is just reuse.  Or if not, then maybe you should bite the 
>bullet and record that extra info.
>
>If you don't want to do that in order to simplify things, then you live with 
>the 
>limitations and sluggishness of LIMIT and OFFSET, as those limitations are 
>systemic to LIMIT and OFFSET.
>
>-- Darren Duncan
>
>> At 2016-03-03 10:42:37, "Darren Duncan" <darren at darrenduncan.net> wrote:
>>> On 2016-03-02 5:02 AM, ?? wrote:
>>>> Here... said "Do not try to implement a scrolling window using LIMIT and 
>>>> OFFSET. Doing so will become sluggish as the user scrolls down toward the 
>>>> bottom of the list.?. But the page also said "This information is obsolete?
>>>> ... talks about LIMIT & OFFSET, without mentioning that is a bad idea. So 
>>>> my question is can I do that or not (will it become sluggish if I do that) 
>>>> ?
>>>
>>> Using LIMIT and OFFSET is generally a bad idea, not just on performance but 
>>> also
>>> logically.
>>>
>>> A better way that is very similar is to use WHERE and LIMIT instead.
>>>
>>> Assuming that you are going through pages consecutively, you know what rows
>>> you've already seen, particularly in the prior page.
>>>
>>> Whatever columns you are sorting your result by, take the last row just 
>>> seen and
>>> the query for the next page is found by saying WHERE > or < etc the field 
>>> values
>>> for that last row.
>>>
>>> So you're sure to get the rows just after the ones you just saw, and later 
>>> pages
>>> shouldn't be any slower than earlier ones.
>>>
>>> This approach is also resilient to arbitrary changes to the database between
>>> page views so you don't either repeat rows or skip rows due to offset 
>>> mismatch.
>>>
>>> -- Darren Duncan
>
>_______________________________________________
>sqlite-users mailing list
>sqlite-users at mailinglists.sqlite.org
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to