> You are thinking that perhaps queries such as the following might
> be faster using a merge:
> SELECT * FROM tab1 JOIN tab2 ON tab1.a=tab2.x;
> I disagree.
I don't see any reason to disagree. Merge join will definitely be faster if the
data is already sorted. See the reference:
https://en.wikipedia.org/wiki/Sort-merge_join. It is a linear time operation.
What sqlite does now is for each "a" it searches through the index for "x".
This search operation is logarithmic time. If there are many records in tab1,
then this stacks and becomes quasilinear time. I experience this constantly
with sqlite data wrangling and tab1 and 2 in the millions. sqlite's nested
loops are very fast, but the joins _could_ be made much faster with merge joins
in such situations. I just wish I had this hint...
sqlite-users mailing list