Thanks a lot for the explanation Dennis, I really appreciate.
---
Marco
On Apr 24, 2007, at 12:35 AM, Dennis Cote wrote:
Marco Bambini wrote:
Database is uniformly distributed, I created it ad hoc just for my
test (sqlite 3.3.12):
Marco,
Another way to think of this is that if your database contained
random numbers in the range 1-100 for both a and b, then an index
on either of those values would allow sqlite to ignore all but the
requested value, or 99% of the entries. It would only have to
examine 1% of the records and would run in perhaps 2% of the time
of a full table scan. If your data had even more distinct values,
things would be even faster. Ultimately, if each data value was
unique, then one index lookup would find the matching record, and
the lookup time would only be about 2/300,000 or 0.0007% of the
time for a full table scan.
Indexes are not a magical cure all, they only speed up lookups if
you enough different values to let them to reduce the search space
to a small enough portion of the entire database to pay for their
overhead.
Dennis Cote
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------