Верхний предел MySQL для count (*)

у меня есть запрос:

select count(*) from `table` where `something`>123

Если в таблице несколько миллионов записей, запрос выполняется очень медленно, даже если есть индекс в столбце что-то . Однако на самом деле меня интересует значение:

min(100000, count(*))

Итак, есть ли способ предотвратить подсчет строк MySQL, когда он уже нашел 100 КБ? Я нашел что-то вроде:

select count(*) from (select 1 from `table` where `something`>123 limit 100000) as `asd`

Это намного быстрее, чем count (*) , если в таблице есть несколько миллионов совпадающих записей, но count (*) работает намного быстрее, когда есть меньше 100000 совпадений.

Есть ли способ сделать это быстрее?

7
задан Sebastian Nowak 12 December 2011 в 17:23
поделиться