> How does the performance compare with this:
>
> CREATE TABLE t1 (a TEXT, b TEXT);
> CREATE TABLE t2 (a TEXT, b TEXT);
> CREATE INDEX t1_a ON t1 (a,b);
> CREATE INDEX t2_a ON t2 (a,b);
>
> SELECT *
> FROM t1 LEFT JOIN t2 ON (t1.b=t2.b AND t2.a='123')
> WHERE t1.a='123';
>

Here are best-of-three averages for my version and your version for both
the good and bad commits:

good / mine :: <0.1s
bad / mine :: 12.5s
good / yours :: 0.2s
bad / yours :: 0.2s

In other words, there is no regression for your version.  But it does not
return as quickly as my version does before the regression.


> Run "ANALYZE;" on a database that contains actual data, then send us
> the output of ".fullschema"
>

Here you go:

sqlite> analyze;
sqlite> .fullschema
CREATE TABLE t1 (a TEXT, b TEXT);
CREATE TABLE t2 (a TEXT, b TEXT);
CREATE INDEX t1_a ON t1 (a);
CREATE INDEX t1_b ON t1 (b);
CREATE INDEX t2_a ON t2 (a);
CREATE INDEX t2_b ON t2 (b);
ANALYZE sqlite_master;
ANALYZE sqlite_master;
INSERT INTO sqlite_stat1 VALUES('t2','t2_b','1000000 1000');
INSERT INTO sqlite_stat1 VALUES('t2','t2_a','1000000 1000');
INSERT INTO sqlite_stat1 VALUES('t1','t1_b','1000000 1000');
INSERT INTO sqlite_stat1 VALUES('t1','t1_a','1000000 1000');
ANALYZE sqlite_master;

The sqlite_stat1 values make sense, because there are 1,000,000 rows in
each of t1 and t2, with 1,000 values for each of a and b.

After running ANALYZE, the origin query returns in 2.7s, but the query plan
is unchanged.

On Mon, 6 Jan 2020 at 01:53, Richard Hipp <d...@sqlite.org> wrote:

> How does the performance compare with this:
>
> CREATE TABLE t1 (a TEXT, b TEXT);
> CREATE TABLE t2 (a TEXT, b TEXT);
> CREATE INDEX t1_a ON t1 (a,b);
> CREATE INDEX t2_a ON t2 (a,b);
>
> SELECT *
> FROM t1 LEFT JOIN t2 ON (t1.b=t2.b AND t2.a='123')
> WHERE t1.a='123';
>
>
> On 1/5/20, Peter Inglesby <peter.ingle...@gmail.com> wrote:
> > Is there any more information I could provide?
>
> Run "ANALYZE;" on a database that contains actual data, then send us
> the output of ".fullschema"
>
> --
> D. Richard Hipp
> d...@sqlite.org
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to