On 4/14/08, Chris Tracy <[EMAIL PROTECTED]> wrote:
> Hello,
>
>         I'm a relative newcommer to SQL and SQLite and have was is likely
>  a silly question.  However, I've not found an answer to it or even a
>  reference to anything similar in searching the list archives or the web.
>
>         If I have a table laid out thusly:
>
>  CREATE TABLE bridge_table (
>          timestamp INTEGER NOT NULL,
>          hID INTEGER NOT NULL,
>          sID INTEGER NOT NULL,
>          pID INTEGER NOT NULL
>  );
>
>  where timestamp values (unix 32-bit integer timestamps) would always be
>  inserted into the database in ascending order, and where there may be as
>  many as 500 hID entries for each timestamp.  After a while, this table
>  will grow to contain between 30 and 50 million records.
>
>         In doing some tests, I find that with the fully populated table, I
>  can run:
>
>  SELECT * from bridge_table WHERE timestamp = <someval>;
>
>  and almost immediately get back all the results I want, since they're
>  right next to each other in the db.  However, the actual SELECT doesn't
>  return for almost 13 additional seconds, as the entire table is scanned
>  for other rows where timestamp might be <someval>.
>
>         Of course, the simple answer is to add an index on timestamp,
>  which does what I want.  However, doing so increases the size of this
>  50 million row table from 1GB to 1.8GB.  It seems to me that if I could
>  convince SQLite that the rows would always be inserted in ascending order
>  by timestamp, that I could have a sort of implicit index without consuming
>  the additional 0.8GB.
>
>         Is this even theoretically possible or am I missing something
>  obvious that would prevent an "implicit index" from working like I'm
>  suggesting?

Have you considered making timestamp a PRIMARY KEY?

So, declare it as INTEGER PRIMARY KEY NOT NULL

(the NOT NULL may be unnecessary at that point).

That should help.


>
>         Thanks,
>
>         Chris
>  _______________________________________________
>  sqlite-users mailing list
>  [email protected]
>  http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>


-- 
Puneet Kishor http://punkish.eidesis.org/
Nelson Institute for Environmental Studies http://www.nelson.wisc.edu/
Open Source Geospatial Foundation (OSGeo) http://www.osgeo.org/
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to