← Back to team overview

maria-developers team mailing list archive

Optimization about count(*) of mysql 5.1.38


hi all:
I have a question about the optimization of count(*) in a range.
Sql for mysql like:select count(*) from t where id > 10 and id < 1000000;
In table t, there is an B-tree index on id field, this sql will read
hundreds of thousands of records from the storage engine, that is a
time-consuming operation.
I am developing a storage engine, I want to know, is there a good
method to caculate the records in a range, rather than read all
records or keys in the range?
For example, does mysql call an API like records_in_range() to get the
records in a range?
After all, the range could be caculated by reading twice index.

Follow ups