Tengo una muy simple consulta SQL:RECUENTO PostgreSQL (DISTINCT ...) muy lento
SELECT COUNT(DISTINCT x) FROM table;
Mi tabla tiene alrededor de 1,5 millones de filas. Esta consulta se ejecuta bastante lentamente; se tarda alrededor de 7.5s, en comparación con
SELECT COUNT(x) FROM table;
que toma alrededor de 435ms. ¿Hay alguna manera de cambiar mi consulta para mejorar el rendimiento? Intenté agrupar y hacer un conteo regular, así como también poner un índice en x; ambos tienen el mismo tiempo de ejecución de 7.5s.
Yo no lo creo. Obtener los valores distintivos de 1,5 millones de filas va a ser lento. – Ryan
Acabo de probarlo en C#, obteniendo los distintos valores de 1.5 millones * enteros de la memoria * toma más de un segundo en mi computadora. Entonces creo que probablemente no tengas suerte. – Ryan
El plan de consulta dependerá en gran medida de la estructura de la tabla (índices) y la configuración de las constantes de sintonía (trabajo) mem, effective_cache_size, random_page_cost). Con un ajuste razonable, la consulta podría ejecutarse en menos de un segundo. – wildplasser