>From my shell session:

[[[
% time sqlite3 foo.db "SELECT hash, revision, offset, size, expanded_size FROM 
rep_cache;" > /dev/null
sqlite3 foo.db  > /dev/null  12.72s user 0.69s system 98% cpu 13.575 total

% time sqlite3 foo.db "SELECT hash, revision, offset, size, expanded_size FROM 
rep_cache;" > /dev/null
sqlite3 foo.db  > /dev/null  12.56s user 0.94s system 99% cpu 13.561 total

% time sqlite3 foo.db "SELECT hash, revision, offset, size, expanded_size, 
COUNT(*) FROM rep_cache;" > /dev/null
sqlite3 foo.db  > /dev/null  2.76s user 0.72s system 99% cpu 3.492 total

% time sqlite3 foo.db "SELECT hash, revision, offset, size, expanded_size, 
COUNT(*) FROM rep_cache;" > /dev/null
sqlite3 foo.db  > /dev/null  2.79s user 0.69s system 99% cpu 3.498 total

% time sqlite3 foo.db "SELECT hash, revision, offset, size, expanded_size FROM 
rep_cache;" > /dev/null          
sqlite3 foo.db  > /dev/null  12.62s user 0.75s system 99% cpu 13.430 total

% sqlite3 -version
3.7.4
]]]

That is: adding COUNT(*) to the query makes it 3.9 times faster.

Huh?  How does that make sense?  Should we do anything differently in
our code in light of this?


[ This isn't a fabricated example --- this is the query I added to
rep-cache.c today ]

Reply via email to