I\'m trying to figure out how to optimize a very slow query in MySQL (I didn\'t design this):
SELECT COUNT(*) FROM change_event me WHERE change_event_id >
InnoDB uses clustered primary keys, so the primary key is stored along with the row in the data pages, not in separate index pages. In order to do a range scan you still have to scan through all of the potentially wide rows in data pages; note that this table contains a TEXT column.
Two things I would try:
optimize table
. This will ensure that the data pages are physically stored in sorted order. This could conceivably speed up a range scan on a clustered primary key.(you also probably want to make the change_event_id column bigint unsigned if it's incrementing from zero)