On 23 Jan 2015, at 3:16pm, Parakkal, Navin S (Software Engineer) 
<navin.parak...@hp.com> wrote:

> I also did another experiment. I created this table and did a vaccum and then 
> the select count(*) in sqlite3 was around 2 mins. 
> 
> When I create an index manually after the table is loaded (imported from 
> csv), select count(*) in sqlite3 was within 30 to 40 secs.

In the second case, to calculate count(*) SQLite was able to use the index you 
had created.  Since this index was smaller than the table, SQLite was able to 
count the entries in it faster.  The result would have been the same if you had 
done whenever the index had been created

CREATE TABLE
.import
CREATE INDEX
time the 'select count(*) from hp_table1' command here


should yield pretty-much the same result as

CREATE TABLE
CREATE INDEX
.import
time the 'select count(*) from hp_table1' command here

If you are using a table for which rows are INSERTed but never DELETEd, then 
you will get the same result almost instantly using

        select max(rowid) from hp_table1

instead of counting the rows.

Simon.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to