On Sat, Aug 21, 2010 at 10:45 PM, ve3meo <holden_fam...@sympatico.ca> wrote:
> "Eric Smith" ...
>> I haven't used it myself, but I'm pretty sure this is what the R*tree
>> module was designed for:
>
> I have not used it either but was intrigued by your suggestion. Looking into
> it, my sense was that it would be advantageous for a 2-dimension or more
> search and I think this was borne out by my experiments, albeit with my very
> limited knowledge and experience. I hasten to add that maybe my queries were
> not the best designed.
>
> I created an R-tree virtual table with the minimum number of columns: id,
> xmin, xmax and populated it with the rowid from Peng's table A and
> position-10 in xmin and position+10 in xmax. Thus any value lying between
> xmax and xmin is no more than a distance of 10 from the point pointed to in
> Table A by id. Indeed, a simple select on a single value between xmax and
> xmin returned rows from the virtual table faster than the correspondingly
> simple select on the real table with an index on position (something like
> 6ms vs. 10 ms).
>
> However, on the 10,000 row test table on which I reported earlier that Jim's
> 'between' query was fastest at ~2.3s, the best I could get by working an
> R-tree virtual table into the mix was ~30s, and that with an index on Name
> or Name+Position. Without the index... ~60s, not much better than Peng's
> original indexless query and way more complicated.
>
> I think the penalty is in the extra JOIN required - 3 tables instead of 2 -
> with the speed advantage on the 'between' constraint being swamped by the
> volume of intermediate rows.

I don't quite understand why there are 3 tables with R-tree. Would you
please show me what query you used? Thank you very much.

-- 
Regards,
Peng
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to