which sql query is more efficient: select count(*) or select ... where key>value?
Posted
by
davka
on Stack Overflow
See other posts from Stack Overflow
or by davka
Published on 2011-01-02T13:49:30Z
Indexed on
2011/01/02
13:53 UTC
Read the original article
Hit count: 135
I need to periodically update a local cache with new additions to some DB table. The table rows contain an auto-increment sequential number (SN) field. The cache keeps this number too, so basically I just need to fetch all rows with SN larger than the highest I already have.
SELECT * FROM table where SN > <max_cached_SN>
However, the majority of the attempts will bring no data (I just need to make sure that I have an absolutely up-to-date local copy). So I wander if this will be more efficient:
count = SELECT count(*) from table;
if (count > <cache_size>)
// fetch new rows as above
I suppose that selecting by an indexed numeric field is quite efficient, so I wander whether using count
has benefit. On the other hand, this test/update will be done quite frequently and by many clients, so there is a motivation to optimize it.
© Stack Overflow or respective owner