sql >> Base de Datos >  >> RDS >> Mysql

¿Alguna forma de evitar una ordenación de archivos cuando el orden es diferente a la cláusula where?

Tenga en cuenta que el término MySQL filesort no significa necesariamente que escribe en el disco. Simplemente significa que se ordenará sin usar un índice. Si el conjunto de resultados es lo suficientemente pequeño, MySQL lo clasificará en la memoria, que es mucho más rápido que la E/S del disco.

Puede aumentar la cantidad de memoria que MySQL asigna para los tipos de archivos en memoria utilizando sort_buffer_size variable del servidor. En MySQL 5.1, el tamaño del búfer de clasificación predeterminado es de 2 MB y el máximo que puede asignar es de 4 GB.

actualización: Con respecto al comentario de Jonathan Leffler sobre medir cuánto tiempo lleva la clasificación, puede aprender a usar SHOW PROFILE FOR QUERY que le dará el desglose de cuánto tiempo lleva cada fase de ejecución de la consulta.