MIN/MAX vs ORDER BY and LIMITSeleccione MAX u Orden Por Límite 1
Para dar seguimiento a esta pregunta: He encontrado algunos resultados muy diferentes de lo que Sean McSomething describe:
que tengo una tabla con filas a unos 300 metros.
Select max(foo) from bar;
demora alrededor de 15 seg. para ejecutar
Select foo from bar order by foo desc limit 1;
tarda 3 seg. ejecutar
Declaración de Sean "Parece que MIN() es el camino a seguir - es más rápido en el peor de los casos, indistinguible en el mejor de los casos" simplemente no es válido para este caso ... pero no tengo ni idea por qué. ¿Alguien puede ofrecer una explicación?
Editar: Como no puedo mostrar la estructura de la tabla aquí: supongamos que la barra es una tabla en un ndb_cluster sin relaciones, foo es un punto de datos arbitrario sin índice.
Puede proporcionar 'SHOW CREATE TABLE bar' - la indexación, o la clave externa puede afectarlo – Mikhail
Las dos declaraciones SQL que tiene no hacen lo mismo, ¿está seguro de que está probando correctamente? ? Su última afirmación tendría que 'ordenar por foo', no 'ordenar por compás' para que sean los mismos – nos
El tipo de motor también puede desempeñar un papel en el rendimiento de la consulta. –