Tim Romano <[email protected]> wrote:
> I've read http://www.sqlite.org/optoverview.html but don't find my
> answer there.
>
> In the following query, WOIDS has 4 million rows and CORNFIX has
> 25,000 rows.
>
> UPDATE WOIDS
> SET corn = 1
> WHERE EXISTS
> (
> SELECT *
> FROM CORNFIX
> WHERE (cornfix.col_1 = woids.ttl) AND (cornfix.col_2 =
> woids.pos) AND (cornfix.col_3 = woids.wrdid)
> )
Try this instead:
update WOIDS set corn=1 where rowid in
(select w2.rowid
from cornfix join woids w2 on (
cornfix.col_1 = w2.ttl AND cornfix.col_2 = w2.pos AND cornfix.col_3 =
w2.wrdid)
);
I'm not sure, but this structure might help SQLite choose cornfix for the outer
loop.
Igor Tandetnik
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users