у меня есть запрос:
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 совпадений.
Есть ли способ сделать это быстрее?