On Wed, Jun 27, 2018, 7:47 PM Keith Medcalf <kmedc...@dessus.com> wrote:
> > If you give the parent column a proper affinity (ie, integer) do you get > "happiness making" results? > > --- > The fact that there's a Highway to Hell but only a Stairway to Heaven says > a lot about anticipated traffic volume. > > > >-----Original Message----- > >From: sqlite-users [mailto:sqlite-users- > >boun...@mailinglists.sqlite.org] On Behalf Of Allen > >Sent: Wednesday, 27 June, 2018 16:20 > >To: sqlite-users@mailinglists.sqlite.org > >Subject: [sqlite] insert or replace performance with self > >"references" column > > > >I have a table with an additional index and a query: > > > >"create table Transactions (Id integer primary key not null, Parent > >references Transactions(id), Body varchar);" > > > >"create index Parent_Index on Transactions (Parent);" > > > >EXPLAIN QUERY PLAN insert or replace into Transactions (Id, Parent, > >Body) values (?1, ?2, ?3); > >23 0 0 SCAN TABLE Transactions > >43 0 0 SCAN TABLE Transactions > > > >The double SCAN TABLE seems to have something to do with both the > >"references" column and the "or replace" statement. If I remove > >either, then the SCAN goes away. > > > >Questions: > > > >- Is my syntax for the " insert or replace" statement correct, and > >will it do what I expect (insert a new row with a new auto-generated > >Id if Id is NULL, insert a new row with the given Id if Id is not > >NULL > >and no row exists with that Id, or update the existing row with the > >given Id if Id is not NULL and a row exists with that Id)? > > > >- Is sqlite really doing one or two table scans to perform the > >"insert > >or replace" with a "references" self column? > > > >- If so, is there a way to eliminate this (other than removing either > >the "references" or the "or replace")? > > > >Thanks much. > >_______________________________________________ > >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 > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users