Mysql
 sql >> Base de données >  >> RDS >> Mysql

Un moyen d'éviter un tri de fichiers lorsque l'ordre est différent de la clause where?

Notez que le terme MySQL filesort ne signifie pas nécessairement qu'il écrit sur le disque. Cela signifie simplement qu'il va trier sans utiliser d'index. Si le jeu de résultats est suffisamment petit, MySQL le trie en mémoire, ce qui est beaucoup plus rapide que les E/S de disque.

Vous pouvez augmenter la quantité de mémoire allouée par MySQL pour les tris de fichiers en mémoire à l'aide de sort_buffer_size variables de serveur. Dans MySQL 5.1, la taille du tampon de tri par défaut est de 2 Mo et le maximum que vous pouvez allouer est de 4 Go.

mise à jour : Concernant le commentaire de Jonathan Leffler sur la mesure de la durée du tri, vous pouvez apprendre à utiliser SHOW PROFILE FOR QUERY qui vous donnera la répartition de la durée de chaque phase d'exécution de la requête.