Tengo una consulta:límite superior de Mysql para la cuenta (*)
select count(*) from `table` where `something`>123
Si la tabla tiene pocos millones de registros, la consulta se ejecuta muy lento a pesar de que hay un índice en la columna something
. Sin embargo, de hecho estoy interesado en valor de:
min(100000, count(*))
Entonces, ¿hay alguna manera de prevenir MySQL de contar filas cuando ya encontró 100k? He encontrado algo como:
select count(*) from (select 1 from `table` where `something`>123 limit 100000) as `asd`
Es mucho más rápido que count(*)
si la tabla tiene unos pocos millones de entradas coincidentes, pero count(*)
corre mucho más rápido cuando hay menos de 100000 coincidencias.
¿Hay alguna forma de hacerlo más rápido?
Vamos a suponer que es un error tipográfico que un límite es '123' y el otro es' 23'. – Kevin
Lo es. Reparado, gracias. –
¿Qué tipo de columna es 'algo'? ¿Estás usando InnoDB? –