When it revert back after dropping the index. The speed does not become slower.
At 2015-12-14 21:35:03, "Hick Gunter" <hick at scigames.at> wrote:
>Does it revert back to slower speed after dropping the index?
>Can you compare the EXPLAIN output produced with and without the index?
>
>There is no difference on my machine (Version 3.7.14); if yours behaves the
>same way then whatever changes speed is definitely not because SQLite is doing
>something differently.
>
>asql> create temp table t (x integer primary key asc, y,z);
>asql> .explain
>asql> explain select * from t where rowid=15;
>addr opcode p1 p2 p3 p4 p5 comment
>---- ------------- ---- ---- ---- ------------- -- -------------
>0 Trace 0 0 0 00 NULL
>1 Integer 15 1 0 00 NULL
>2 Goto 0 12 0 00 NULL
>3 OpenRead 0 2 1 3 00 t
>4 MustBeInt 1 10 0 00 NULL
>5 NotExists 0 10 1 00 pk
>6 Rowid 0 3 0 00 NULL
>7 Column 0 1 4 00 t.y
>8 Column 0 2 5 00 t.z
>9 ResultRow 3 3 0 00 NULL
>10 Close 0 0 0 00 NULL
>11 Halt 0 0 0 00 NULL
>12 Transaction 1 0 0 00 NULL
>13 VerifyCookie 1 1 0 00 NULL
>14 TableLock 1 2 0 t 00 NULL
>15 Goto 0 3 0 00 NULL
>asql> explain select * from t where x=15;
>addr opcode p1 p2 p3 p4 p5 comment
>---- ------------- ---- ---- ---- ------------- -- -------------
>0 Trace 0 0 0 00 NULL
>1 Integer 15 1 0 00 NULL
>2 Goto 0 12 0 00 NULL
>3 OpenRead 0 2 1 3 00 t
>4 MustBeInt 1 10 0 00 NULL
>5 NotExists 0 10 1 00 pk
>6 Rowid 0 3 0 00 NULL
>7 Column 0 1 4 00 t.y
>8 Column 0 2 5 00 t.z
>9 ResultRow 3 3 0 00 NULL
>10 Close 0 0 0 00 NULL
>11 Halt 0 0 0 00 NULL
>12 Transaction 1 0 0 00 NULL
>13 VerifyCookie 1 1 0 00 NULL
>14 TableLock 1 2 0 t 00 NULL
>15 Goto 0 3 0 00 NULL
>asql> create index t_x on t(x);
>asql> explain select * from t where x=15;
>addr opcode p1 p2 p3 p4 p5 comment
>---- ------------- ---- ---- ---- ------------- -- -------------
>0 Trace 0 0 0 00 NULL
>1 Integer 15 1 0 00 NULL
>2 Goto 0 12 0 00 NULL
>3 OpenRead 0 2 1 3 00 t
>4 MustBeInt 1 10 0 00 NULL
>5 NotExists 0 10 1 00 pk
>6 Rowid 0 3 0 00 NULL
>7 Column 0 1 4 00 t.y
>8 Column 0 2 5 00 t.z
>9 ResultRow 3 3 0 00 NULL
>10 Close 0 0 0 00 NULL
>11 Halt 0 0 0 00 NULL
>12 Transaction 1 0 0 00 NULL
>13 VerifyCookie 1 2 0 00 NULL
>14 TableLock 1 2 0 t 00 NULL
>15 Goto 0 3 0 00 NULL
>
>-----Urspr?ngliche Nachricht-----
>Von: sqlite-users-bounces at mailinglists.sqlite.org
>[mailto:sqlite-users-bounces at mailinglists.sqlite.org] Im Auftrag von ???
>Gesendet: Montag, 14. Dezember 2015 14:06
>An: SQLite mailing list
>Betreff: [sqlite] Is rowid the fastest?
>
>You said that "You are probably falling into the cache effect trap again.
>There is no point in indexing on the primary key, it only wastes space and CPU
>cycles ".
> I do not agree with you. let me tell you why.
> Before I retrieve by index which created for primary key. The speed of
> retrieve by rowid is very stable(for a long time).
> Once I retrieve by index , the stable will broken and the speed is faster
> than its before.
> I think you could try it.
>
>
>
>
>
>___________________________________________
> Gunter Hick
>Software Engineer
>Scientific Games International GmbH
>FN 157284 a, HG Wien
>Klitschgasse 2-4, A-1130 Vienna, Austria
>Tel: +43 1 80100 0
>E-Mail: hick at scigames.at
>
>This communication (including any attachments) is intended for the use of the
>intended recipient(s) only and may contain information that is confidential,
>privileged or legally protected. Any unauthorized use or dissemination of this
>communication is strictly prohibited. If you have received this communication
>in error, please immediately notify the sender by return e-mail message and
>delete all copies of the original communication. Thank you for your
>cooperation.
>
>
>_______________________________________________
>sqlite-users mailing list
>sqlite-users at mailinglists.sqlite.org
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users